Submission #40599

#TimeUsernameProblemLanguageResultExecution timeMemory
40599ljk0411jgTreasure (different grader from official contest) (CEOI13_treasure2)C++14
68 / 100
2 ms660 KiB
#include "treasure.h" typedef struct _data { int x, y; }Data; Data Point[10005]; int N, idx; void input(int sx, int sy, int ex, int ey) { for (int i = sy; i <= ey; i++) { for (int j = sx; j <= ex; j++) { Point[idx].x = j; Point[idx++].y = i; } } } int func(int sx, int sy, int ex, int ey, int t, int flag) { int count, x, y, ret = 0; x = ex - sx + 1; y = ey - sy + 1; if (flag == 0) { count = countTreasure(sx, sy, ex, ey); } else { count = t; } if (x * y == count) { input(sx, sy, ex, ey); return count; } else if (count == 0) { return 0; } if (x > y) { int mid; mid = (sx + ex) / 2; ret = func(sx, sy, mid, ey, t, 0); if (ret == count) { return ret; } ret += func(mid + 1, sy, ex, ey, count - ret, 1); } else { int mid; mid = (sy + ey) / 2; ret = func(sx, sy, ex, mid, t, 0); if (ret == count) { return ret; } ret += func(sx, mid + 1, ex, ey, count - ret, 1); } return ret; } void findTreasure(int N) { idx = 0; func(1, 1, N, N, 1, 0); for (int i = 0; i < idx; i++) { Report(Point[i].x, Point[i].y); } }

Compilation message (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...