#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);
}
Compilation message
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 time |
Memory |
Grader output |
1 |
Partially correct |
0 ms |
2084 KB |
Output is partially correct - N = 5, K = 511, score = 8 |
2 |
Partially correct |
0 ms |
2084 KB |
Output is partially correct - N = 10, K = 8819, score = 1 |
3 |
Partially correct |
0 ms |
2084 KB |
Output is partially correct - N = 15, K = 32227, score = 4 |
4 |
Partially correct |
0 ms |
2084 KB |
Output is partially correct - N = 16, K = 38257, score = 4 |
5 |
Partially correct |
0 ms |
2084 KB |
Output is partially correct - N = 55, K = 8446512, score = 1 |
6 |
Partially correct |
0 ms |
2224 KB |
Output is partially correct - N = 66, K = 18030499, score = 1 |
7 |
Partially correct |
0 ms |
2224 KB |
Output is partially correct - N = 77, K = 20505590, score = 4 |
8 |
Partially correct |
0 ms |
2224 KB |
Output is partially correct - N = 88, K = 40098877, score = 4 |
9 |
Partially correct |
0 ms |
2224 KB |
Output is partially correct - N = 99, K = 88768223, score = 1 |
10 |
Partially correct |
0 ms |
2224 KB |
Output is partially correct - N = 100, K = 92600479, score = 1 |