CSES - HIIT Open 2018 - Results
Submission details
Task:Coins
Sender:Oispa nutellaa
Submission time:2018-05-26 15:53:54 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#10.10 sdetails
#2ACCEPTED0.08 sdetails
#30.06 sdetails
#4ACCEPTED0.07 sdetails
#50.05 sdetails

Code

#include <iostream>

using namespace std;

int n;

int mx[4];
int sz[4];

bool sqt[4][200005];
int mxsi[4];

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cin >> n;
	mxsi[1] = mxsi[2] = -1;
	for (int i = 0; i < n; ++i) {
		int c, s;
		cin >> c >> s;
		sz[s]++;
		mx[s] = max(mx[s], c);
		
		sqt[s][c] = true;
		if (sqt[s][c-1]) mxsi[s] = max(mxsi[s], c);
		if (sqt[s][c+1]) mxsi[s] = max(mxsi[s], c+1);
		
		if (sz[1] == 0) cout << "<\n";
		else if (sz[2] == 0) cout << ">\n";
		else if (sz[1] == 1 && mx[2] > mx[1]) {
			cout << "<\n";
		}
		else if (sz[2] == 1 && mx[1] > mx[2]) {
			cout << ">\n";
		}
		else if (sz[1] < sz[2]) {
			cout << "<\n";
		}
		else if (sz[2] > sz[1]) {
			cout << ">\n";
		}
		else {
			if (mx[1] > mx[2] && mxsi[2] == -1) cout << ">\n";
			else if (mx[1] < mx[2] && mxsi[1] == -1) cout << "<\n";
			else if (mx[1] > mx[2] && mxsi[1] > mxsi[2]) cout << ">\n";
			else if (mx[1] < mx[2] && mxsi[1] < mxsi[2]) cout << "<\n";
			else cout << "?\n";
		}
	}
	return 0;
}

Test details

Test 1

Verdict:

input
200000
175878 1
146174 1
4939 2
181388 1
...

correct output
>
>
>
>
>
...

user output
>
>
>
>
>
...

Test 2

Verdict: ACCEPTED

input
200000
1 2
2 1
3 2
4 1
...

correct output
<
>
<
>
<
...

user output
<
>
<
>
<
...

Test 3

Verdict:

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:

input
200000
188909 2
58944 1
26824 1
143263 2
...

correct output
<
<
?
<
<
...

user output
<
<
<
<
<
...