Submission #1319970

#TimeUsernameProblemLanguageResultExecution timeMemory
1319970Jawad_Akbar_JJWeighting stones (IZhO11_stones)C++20
0 / 100
1094 ms680 KiB
#include <iostream>

using namespace std;
const int N = (1<<17) + 1;
int pre[N], Mx[N<<1], Mn[N<<1], val[N<<1];

void Add(int l, int r, int v, int cur = 1, int st = 1, int en = N){
	if (l >= en or r <= st)
		return;
	if (l <= st and r >= en){
		val[cur] += v;
		return;
	}
	int lc = cur + cur, rc = lc + 1, mid = (st + en) / 2;
	Add(l, r, v, lc, st, mid);
	Add(l, r, v, rc, mid, en);

	Mn[cur] = min(Mn[lc] + val[lc], Mn[rc] + val[rc]);
	Mx[cur] = min(Mx[lc] + val[lc], Mx[rc] + val[rc]);
}

int main(){
	int n;
	cin>>n;

	for (int i=1, a, b;i<=n;i++){
		cin>>a>>b;
		for (int j=a;j>=1;j--)
			pre[j] += (b == 1 ? 1 : -1);
		int mx = 0, mn = 0;
		for (int j=n;j>=1;j--)
			mx = max(mx, pre[j]), mn = min(mn, pre[j]);
		if (mn == 0)
			cout<<'>';
		else if (mx == 0)
			cout<<'<';
		else
			cout<<'?';
		cout<<'\n';
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...