Task: | Coins |
Sender: | Tefyn virallinen maajoukkue |
Submission time: | 2018-05-26 13:33:05 +0300 |
Language: | C++ |
Status: | READY |
Result: | WRONG ANSWER |
test | verdict | time | |
---|---|---|---|
#1 | WRONG ANSWER | 0.46 s | details |
#2 | WRONG ANSWER | 0.41 s | details |
#3 | WRONG ANSWER | 0.42 s | details |
#4 | ACCEPTED | 0.34 s | details |
#5 | WRONG ANSWER | 0.47 s | details |
Code
#include <bits/stdc++.h> using namespace std; struct seg{ const int pn = 1<<18; vector<int> p; void init(){ p = vector<int>(2*pn, 0); } void set(int i){ i+=pn; p[i] = 1; i/=2; while(i > 0){ p[i] = p[2*i]+p[2*i+1]; i/=2; } } int get(int i, int a, int b, int l, int r){ // cout << i << " " << a << " " << b << " " << l << " " << r << endl; if(i >= 2*pn || b <= l || a >= r){ //cout << "r1" << endl; return 0; } if(l >= a && r <= b){ // cout << "r2" << endl; return p[i]; } //cout << "r3" << endl; return get(i*2, a, b, l, (l+r)/2) + get(i*2+1, a, b, (l+r)/2, b); } int get2(int a, int b){ return get(1, a, b, 0, pn); } }; int main(){ int n; cin >> n; seg p1, p2; p1.init(); p2.init(); int s1 = 0, s2 = 0; int ma1 = 0, ma2 = 0; for(int i = 0; i < n; ++i){ int c, s; cin >> c >> s; if(s == 1){ p1.set(c); ++s1; ma1 = max(ma1, c); } else{ p2.set(c); ++s2; ma2 = max(ma2, c); } int su1 = p1.get2(ma2, n+1); int su2 = p2.get2(ma1, n+1); if(su1 >= s2) cout << ">" << endl; else if(su2 >= s1) cout << "<" << endl; else cout << "?" << endl; } return 0; } /* * int mi1 = 1000000000, mi2 = 1000000000; int ma1 = 0, ma2 = 0; int s1 = 0, s2 = 0; for(int i = 0; i < n; ++i){ int c, s; cin >> c >> s; if(s == 1){ s1++; mi1 = min(mi1, c); ma1 = max(ma1, c); } else{ s2++; mi2 = min(mi2, c); ma2 = max(ma2, c); } if(s1 >= s2 && mi1 >= ma2) cout << ">" << endl; else if(s2 >= s1 && mi2 >= ma1) cout << "<" << endl; else cout << "?" << endl; }*/
Test details
Test 1
Verdict: WRONG ANSWER
input |
---|
200000 175878 1 146174 1 4939 2 181388 1 ... |
correct output |
---|
> > > > > ... |
user output |
---|
> > > > > ... |
Test 2
Verdict: WRONG ANSWER
input |
---|
200000 1 2 2 1 3 2 4 1 ... |
correct output |
---|
< > < > < ... |
user output |
---|
< > < ? ? ... |
Test 3
Verdict: WRONG ANSWER
input |
---|
200000 1 1 2 1 3 1 4 1 ... |
correct output |
---|
> > > > > ... |
user output |
---|
> > > > > ... |
Test 4
Verdict: ACCEPTED
input |
---|
200000 1 1 2 1 3 1 4 1 ... |
correct output |
---|
> > > > > ... |
user output |
---|
> > > > > ... |
Test 5
Verdict: WRONG ANSWER
input |
---|
200000 188909 2 58944 1 26824 1 143263 2 ... |
correct output |
---|
< < ? < < ... |
user output |
---|
< < ? < < ... |