제출 #37267

#제출 시각아이디문제언어결과실행 시간메모리
37267aome보물 찾기 (CEOI13_treasure2)C++14
29 / 100
0 ms2224 KiB
#include "treasure.h"
#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> ii;
vector<ii> res;

void cal(int lx, int rx, int ly, int ry, int val) {
	if (val == 0) return;
	if (lx == rx && ly == ry) {
		res.push_back(ii(lx, ly)); return;
	}
	int midx = (lx + rx) >> 1;
	int midy = (ly + ry) >> 1;
	int V0, V1, V2, V3;
	if (val == -1) {
		V0 = countTreasure(lx, ly, rx, ry);
	}
	else V0 = val;
	V3 = countTreasure(lx, ly, midx, midy);
	if (lx == rx) {
		V1 = V0, V2 = V3;
	}
	else if (ly == ry) {
		V1 = V3, V2 = V0;
	}
	else {
		V1 = countTreasure(lx, ly, midx, ry);
		V2 = countTreasure(lx, ly, rx, midy);
	}
 	cal(lx, midx, ly, midy, V3);
	cal(lx, midx, midy + 1, ry, V1 - V3);
	cal(midx + 1, rx, ly, midy, V2 - V3);
	cal(midx + 1, rx, midy + 1, ry, V0 - V3 - (V1 - V3) - (V2 - V3));
}

void findTreasure (int N) {
    cal(1, N, 1, N, -1);
    for (auto i : res) Report(i.first, i.second);
}

컴파일 시 표준 에러 (stderr) 메시지

grader.c: In function 'int main()':
grader.c:63:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         my_assert(strlen(A[i]+1) == N, "each line of the map must contain N zeroes or ones (before loop)");
                                  ^
#Verdict Execution timeMemoryGrader output
Fetching results...