Submission #453572

#TimeUsernameProblemLanguageResultExecution timeMemory
453572dutchWeighting stones (IZhO11_stones)C++17
100 / 100
39 ms4376 KiB
#include <bits/stdc++.h>
using namespace std;
using T = array<int, 3>;

const T ID = {-1, 1, 0};

T comb(T &x, T &y){
	return {max(y[0], x[0] + y[2]), min(y[1], x[1] + y[2]), x[2] + y[2]};
}

int n, s = 1;
vector<T> a;

signed main(){
	cin.tie(0)->sync_with_stdio(0);
	cin >> n;
	while((s+=s)<n);
	a.assign(2*s, ID);

	while(n--){
		int i, v; cin >> i >> v;
		--i; v = 2*v-3;

		a[i+=s] = {v, v, v};
		while(i/=2) a[i] = comb(a[2*i], a[2*i+1]);

		if(a[1][0] > 0 && a[1][1] < 0) cout << "?\n";
		else cout << (a[1][0] > 0 ? "<\n" : ">\n");
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...