Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 01ffd0c

Browse files
Add code for online qualifier
1 parent 40b4bd8 commit 01ffd0c

File tree

4 files changed

+399
-0
lines changed

4 files changed

+399
-0
lines changed

‎SnackDown17/Qualifier/1.cpp

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define ull unsigned long long
4+
#define vi vector<ll>
5+
#define pp pair<ll,ll>
6+
#define mp make_pair
7+
#define PI acos(-1.0)
8+
#define all(v) v.begin(),v.end()
9+
#define pb push_back
10+
#define FOR(i,a,b) for(i=a;i<b;i++)
11+
#define FREV(i,a,b) for(i=a;i>=b;i--)
12+
#define SULL(n) scanf("%llu", &n)
13+
#define INF 1e18
14+
15+
#ifndef ONLINE_JUDGE
16+
#define gc getchar
17+
#define pc putchar
18+
#else
19+
#define gc getchar_unlocked
20+
#define pc putchar_unlocked
21+
#endif
22+
23+
using namespace std;
24+
25+
int read_int() {
26+
char c = gc();
27+
while((c < '0' || c > '9') && c != '-') c = gc();
28+
int ret = 0, neg = 0;
29+
if (c == '-') neg = 1, c = gc();
30+
while(c >= '0' && c <= '9') {
31+
ret = 10 * ret + c - 48;
32+
c = gc();
33+
}
34+
return neg ? -ret : ret;
35+
}
36+
37+
ll read_ll() {
38+
char c = gc();
39+
while((c < '0' || c > '9') && c != '-') c = gc();
40+
ll ret = 0;
41+
int neg = 0;
42+
if (c == '-') neg = 1, c = gc();
43+
while(c >= '0' && c <= '9') {
44+
ret = 10 * ret + c - 48;
45+
c = gc();
46+
}
47+
return neg ? -ret : ret;
48+
}
49+
50+
int main() {
51+
ll i,j,t,n;
52+
t = read_ll();
53+
string s;
54+
while(t--) {
55+
n = read_ll();
56+
cin>>s;
57+
j = 0;
58+
bool flag = true;
59+
FOR(i,0,n) {
60+
if (s[i] == 'H')
61+
j += 1;
62+
if(s[i] == 'T')
63+
j -= 1;
64+
if (j > 1 || j < 0) {
65+
flag = false;
66+
break;
67+
}
68+
}
69+
if (!flag || j != 0)
70+
cout<<"Invalid\n";
71+
else
72+
cout<<"Valid\n";
73+
}
74+
return 0;
75+
}

‎SnackDown17/Qualifier/2.cpp

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define ull unsigned long long
4+
#define vi vector<ll>
5+
#define pp pair<ll,ll>
6+
#define mp make_pair
7+
#define PI acos(-1.0)
8+
#define all(v) v.begin(),v.end()
9+
#define pb push_back
10+
#define FOR(i,a,b) for(i=a;i<b;i++)
11+
#define FREV(i,a,b) for(i=a;i>=b;i--)
12+
#define SULL(n) scanf("%llu", &n)
13+
#define INF 1e18
14+
15+
#ifndef ONLINE_JUDGE
16+
#define gc getchar
17+
#define pc putchar
18+
#else
19+
#define gc getchar_unlocked
20+
#define pc putchar_unlocked
21+
#endif
22+
23+
using namespace std;
24+
25+
int read_int() {
26+
char c = gc();
27+
while((c < '0' || c > '9') && c != '-') c = gc();
28+
int ret = 0, neg = 0;
29+
if (c == '-') neg = 1, c = gc();
30+
while(c >= '0' && c <= '9') {
31+
ret = 10 * ret + c - 48;
32+
c = gc();
33+
}
34+
return neg ? -ret : ret;
35+
}
36+
37+
ll read_ll() {
38+
char c = gc();
39+
while((c < '0' || c > '9') && c != '-') c = gc();
40+
ll ret = 0;
41+
int neg = 0;
42+
if (c == '-') neg = 1, c = gc();
43+
while(c >= '0' && c <= '9') {
44+
ret = 10 * ret + c - 48;
45+
c = gc();
46+
}
47+
return neg ? -ret : ret;
48+
}
49+
50+
int main() {
51+
ll i,j,t,n;
52+
t = read_ll();
53+
vi a(105);
54+
while (t--) {
55+
n = read_ll();
56+
FOR(i,0,n) {
57+
a[i] = read_ll();
58+
}
59+
if (n%2==0) {
60+
cout<<"no\n";
61+
continue;
62+
}
63+
bool flag = true;
64+
FOR(i,0,n/2) {
65+
if (a[i] != i+1 || a[n-i-1] != i+1) {
66+
flag = false;
67+
break;
68+
}
69+
}
70+
if (flag && a[n/2] == (n+1)/2) {
71+
cout<<"yes\n";
72+
}
73+
else {
74+
cout<<"no\n";
75+
}
76+
77+
}
78+
return 0;
79+
}

‎SnackDown17/Qualifier/3.cpp

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define ull unsigned long long
4+
#define vi vector<ll>
5+
#define pp pair<ll,ll>
6+
#define mp make_pair
7+
#define PI acos(-1.0)
8+
#define all(v) v.begin(),v.end()
9+
#define pb push_back
10+
#define FOR(i,a,b) for(i=a;i<b;i++)
11+
#define FREV(i,a,b) for(i=a;i>=b;i--)
12+
#define SULL(n) scanf("%llu", &n)
13+
#define INF 1e18
14+
15+
#ifndef ONLINE_JUDGE
16+
#define gc getchar
17+
#define pc putchar
18+
#else
19+
#define gc getchar_unlocked
20+
#define pc putchar_unlocked
21+
#endif
22+
23+
using namespace std;
24+
25+
int read_int() {
26+
char c = gc();
27+
while((c < '0' || c > '9') && c != '-') c = gc();
28+
int ret = 0, neg = 0;
29+
if (c == '-') neg = 1, c = gc();
30+
while(c >= '0' && c <= '9') {
31+
ret = 10 * ret + c - 48;
32+
c = gc();
33+
}
34+
return neg ? -ret : ret;
35+
}
36+
37+
ll read_ll() {
38+
char c = gc();
39+
while((c < '0' || c > '9') && c != '-') c = gc();
40+
ll ret = 0;
41+
int neg = 0;
42+
if (c == '-') neg = 1, c = gc();
43+
while(c >= '0' && c <= '9') {
44+
ret = 10 * ret + c - 48;
45+
c = gc();
46+
}
47+
return neg ? -ret : ret;
48+
}
49+
50+
vi a, prefix;
51+
ll n;
52+
53+
ll solve(ll query) {
54+
ll index = (lower_bound(all(a), query) - a.begin()) - 1;
55+
56+
ll mid, beg = 0, last = index;
57+
while(beg<last) {
58+
mid = beg + (last-beg)/2;
59+
ll shortage = (index - mid) * query - (prefix[index] - prefix[mid]);
60+
// cout<<"shortage "<<shortage<<" left "<<mid+1<<endl;
61+
if (mid + 1 == shortage) {
62+
return (n-mid-1);
63+
}
64+
else if (mid+1 < shortage) {
65+
beg = mid + 1;
66+
}
67+
else {
68+
// shortage += (query - a[mid]);
69+
// if (mid < shortage) {
70+
// return (n-mid-1);
71+
// }
72+
last = mid;
73+
}
74+
}
75+
76+
return (n-beg-1);
77+
}
78+
79+
int main() {
80+
ll i,j,t,q;
81+
t = read_ll();
82+
while(t--) {
83+
n = read_ll();
84+
q = read_ll();
85+
a.resize(n);
86+
prefix.resize(n);
87+
FOR(i,0,n) {
88+
a[i] = read_ll();
89+
}
90+
sort(all(a));
91+
prefix[0] = a[0];
92+
FOR(i,1,n) {
93+
prefix[i] = prefix[i-1] + a[i];
94+
}
95+
FOR(i,0,q) {
96+
j = read_ll();
97+
if (j <= a[0]) {
98+
printf("%lld\n", n);
99+
}
100+
else {
101+
cout<<solve(j)<<"\n";
102+
}
103+
}
104+
}
105+
return 0;
106+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /