답안 #204989

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
204989 2020-02-27T16:22:31 Z ics0503 Minerals (JOI19_minerals) C++17
40 / 100
48 ms 14504 KB
#include "minerals.h"
#include<vector>
using namespace std;
vector<int>L, R;
struct SEG {
	vector<int>L;
	int l, r, s, e, who, ck;
} seg[212121];
int segN = 1, segW[212121];
void make_seg(int now, int s, int e) {
	seg[now].who = s;
	seg[now].s = s; seg[now].e = e;
	if (s == e) {
		segW[s] = now;
		return;
	}
	int m = (s + e) / 2;
	if (!seg[now].l)seg[now].l = ++segN;
	make_seg(seg[now].l, s, m);
	if (!seg[now].r)seg[now].r = ++segN;
	make_seg(seg[now].r, m + 1, e);
}
int is_in[212121];
void go_down(int now, int s, int e) {
	seg[now].ck = 1;
//	printf("%d %d %d\n", now, s, e);
	if (s == e || seg[now].L.empty()) {
		for (int p : seg[now].L) if (is_in[p])Query(p);
		Query(L[s]);
		return;
	}
	int m = (s + e) / 2, l = seg[now].l, r = seg[now].r, bef;
	for (int i = m + 1; i <= e; i++)bef = Query(L[i]);
	for (int p : seg[now].L) {
		int res = Query(p);
		is_in[p] = !is_in[p];
		if (res == bef) {
			seg[l].L.push_back(p);
			Query(p);
			is_in[p] = !is_in[p];
		}
		else {
			seg[r].L.push_back(p);
			Query(p);
			is_in[p] = !is_in[p];
		}
	}
	go_down(l, s, m);
}
void Solve(int n) {
	int cnt = 0;
	for (int i = 1; i <= n * 2; i++) {
		int res = Query(i);
		if (res != cnt) {
			L.push_back(i);
		} else {
			seg[1].L.push_back(i);
			Query(i);
		}
		cnt = res;
	}
	make_seg(1, 0, n - 1);
	go_down(1, 0, n - 1);
	for (int i = 2; i <= segN; i++) {
		int s = seg[i].s, e = seg[i].e;
		if (seg[i].ck || seg[i].L.empty() || s == e)continue;
		for(int j = s; j <= e; j++) Query(L[j]);
		go_down(i, s, e);
	}
	for (int i = 0; i < n; i++) {
		for (int p : seg[segW[i]].L) {
			Answer(L[i], p);
		}
	}
}

Compilation message

minerals.cpp: In function 'void go_down(int, int, int)':
minerals.cpp:37:3: warning: 'bef' may be used uninitialized in this function [-Wmaybe-uninitialized]
   if (res == bef) {
   ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 10232 KB Output is correct
2 Correct 11 ms 10360 KB Output is correct
3 Correct 13 ms 10360 KB Output is correct
4 Correct 13 ms 10232 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 10360 KB Output is correct
2 Correct 13 ms 10616 KB Output is correct
3 Correct 14 ms 10744 KB Output is correct
4 Correct 20 ms 11388 KB Output is correct
5 Correct 29 ms 12536 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 10232 KB Output is correct
2 Correct 11 ms 10360 KB Output is correct
3 Correct 13 ms 10360 KB Output is correct
4 Correct 13 ms 10232 KB Output is correct
5 Correct 11 ms 10360 KB Output is correct
6 Correct 13 ms 10616 KB Output is correct
7 Correct 14 ms 10744 KB Output is correct
8 Correct 20 ms 11388 KB Output is correct
9 Correct 29 ms 12536 KB Output is correct
10 Correct 12 ms 10488 KB Output is correct
11 Correct 24 ms 12152 KB Output is correct
12 Correct 30 ms 12664 KB Output is correct
13 Correct 29 ms 12536 KB Output is correct
14 Correct 30 ms 12536 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 10232 KB Output is correct
2 Correct 11 ms 10360 KB Output is correct
3 Correct 13 ms 10360 KB Output is correct
4 Correct 13 ms 10232 KB Output is correct
5 Correct 11 ms 10360 KB Output is correct
6 Correct 13 ms 10616 KB Output is correct
7 Correct 14 ms 10744 KB Output is correct
8 Correct 20 ms 11388 KB Output is correct
9 Correct 29 ms 12536 KB Output is correct
10 Correct 12 ms 10488 KB Output is correct
11 Correct 24 ms 12152 KB Output is correct
12 Correct 30 ms 12664 KB Output is correct
13 Correct 29 ms 12536 KB Output is correct
14 Correct 30 ms 12536 KB Output is correct
15 Incorrect 48 ms 14504 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 10232 KB Output is correct
2 Correct 11 ms 10360 KB Output is correct
3 Correct 13 ms 10360 KB Output is correct
4 Correct 13 ms 10232 KB Output is correct
5 Correct 11 ms 10360 KB Output is correct
6 Correct 13 ms 10616 KB Output is correct
7 Correct 14 ms 10744 KB Output is correct
8 Correct 20 ms 11388 KB Output is correct
9 Correct 29 ms 12536 KB Output is correct
10 Correct 12 ms 10488 KB Output is correct
11 Correct 24 ms 12152 KB Output is correct
12 Correct 30 ms 12664 KB Output is correct
13 Correct 29 ms 12536 KB Output is correct
14 Correct 30 ms 12536 KB Output is correct
15 Incorrect 48 ms 14504 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 10232 KB Output is correct
2 Correct 11 ms 10360 KB Output is correct
3 Correct 13 ms 10360 KB Output is correct
4 Correct 13 ms 10232 KB Output is correct
5 Correct 11 ms 10360 KB Output is correct
6 Correct 13 ms 10616 KB Output is correct
7 Correct 14 ms 10744 KB Output is correct
8 Correct 20 ms 11388 KB Output is correct
9 Correct 29 ms 12536 KB Output is correct
10 Correct 12 ms 10488 KB Output is correct
11 Correct 24 ms 12152 KB Output is correct
12 Correct 30 ms 12664 KB Output is correct
13 Correct 29 ms 12536 KB Output is correct
14 Correct 30 ms 12536 KB Output is correct
15 Incorrect 48 ms 14504 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 10232 KB Output is correct
2 Correct 11 ms 10360 KB Output is correct
3 Correct 13 ms 10360 KB Output is correct
4 Correct 13 ms 10232 KB Output is correct
5 Correct 11 ms 10360 KB Output is correct
6 Correct 13 ms 10616 KB Output is correct
7 Correct 14 ms 10744 KB Output is correct
8 Correct 20 ms 11388 KB Output is correct
9 Correct 29 ms 12536 KB Output is correct
10 Correct 12 ms 10488 KB Output is correct
11 Correct 24 ms 12152 KB Output is correct
12 Correct 30 ms 12664 KB Output is correct
13 Correct 29 ms 12536 KB Output is correct
14 Correct 30 ms 12536 KB Output is correct
15 Incorrect 48 ms 14504 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 10232 KB Output is correct
2 Correct 11 ms 10360 KB Output is correct
3 Correct 13 ms 10360 KB Output is correct
4 Correct 13 ms 10232 KB Output is correct
5 Correct 11 ms 10360 KB Output is correct
6 Correct 13 ms 10616 KB Output is correct
7 Correct 14 ms 10744 KB Output is correct
8 Correct 20 ms 11388 KB Output is correct
9 Correct 29 ms 12536 KB Output is correct
10 Correct 12 ms 10488 KB Output is correct
11 Correct 24 ms 12152 KB Output is correct
12 Correct 30 ms 12664 KB Output is correct
13 Correct 29 ms 12536 KB Output is correct
14 Correct 30 ms 12536 KB Output is correct
15 Incorrect 48 ms 14504 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 10232 KB Output is correct
2 Correct 11 ms 10360 KB Output is correct
3 Correct 13 ms 10360 KB Output is correct
4 Correct 13 ms 10232 KB Output is correct
5 Correct 11 ms 10360 KB Output is correct
6 Correct 13 ms 10616 KB Output is correct
7 Correct 14 ms 10744 KB Output is correct
8 Correct 20 ms 11388 KB Output is correct
9 Correct 29 ms 12536 KB Output is correct
10 Correct 12 ms 10488 KB Output is correct
11 Correct 24 ms 12152 KB Output is correct
12 Correct 30 ms 12664 KB Output is correct
13 Correct 29 ms 12536 KB Output is correct
14 Correct 30 ms 12536 KB Output is correct
15 Incorrect 48 ms 14504 KB Wrong Answer [2]
16 Halted 0 ms 0 KB -