Submission #719359

#TimeUsernameProblemLanguageResultExecution timeMemory
719359rainboypopa (BOI18_popa)C++17
100 / 100
98 ms404 KiB
#include "popa.h"

#define N	1000

int qu[N];

int solve(int n, int *ll, int *rr) {
	int cnt, cnt_, h, i;

	cnt = 0;
	for (i = 0; i < n; i++) {
		cnt_ = cnt;
		while (cnt_ && !query(qu[cnt_ - 1], i - 1, qu[cnt_ - 1], i))
			cnt_--;
		if (cnt_ < cnt) {
			ll[i] = qu[cnt_];
			for (h = cnt_; h < cnt; h++)
				rr[qu[h]] = h + 1 < cnt ? qu[h + 1] : -1;
		} else
			ll[i] = -1;
		cnt = cnt_;
		qu[cnt++] = i;
	}
	for (h = 0; h < cnt; h++)
		rr[qu[h]] = h + 1 < cnt ? qu[h + 1] : -1;
	return qu[0];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...