# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
37267 | aome | Treasure (different grader from official contest) (CEOI13_treasure2) | C++14 | 0 ms | 2224 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |