| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 485869 | rainboy | ČVENK (COI15_cvenk) | C11 | 41 ms | 2204 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 <stdio.h>
#define N 100000
#define X 512
int kk[X][X], n, x_, y_;
int dfs1(int x, int y) {
int k, k1, k2;
if (x >= X || y >= X || (x & y) != 0)
return 0;
k1 = dfs1(x, y + 1), k2 = dfs1(x + 1, y), k = kk[x][y] + k1 + k2;
if (k1 * 2 <= n && k2 * 2 <= n && (n - k) * 2 <= n)
x_ = x, y_ = y;
return k;
}
long long ans;
int dist(int x1, int y1, int x2, int y2) {
int d = 0;
while (x1 != x2 || y1 != y2) {
d++;
if (x1 + y1 > x2 + y2) {
if ((x1 - 1 & y1) == 0)
x1--;
else
y1--;
} else {
if ((x2 - 1 & y2) == 0)
x2--;
else
y2--;
}
}
return d;
}
int main() {
static int xx[N], yy[N];
int i;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d%d", &xx[i], &yy[i]);
kk[xx[i]][yy[i]]++;
}
dfs1(0, 0);
ans = 0;
for (i = 0; i < n; i++)
ans += (long long) kk[xx[i]][yy[i]] * dist(xx[i], yy[i], x_, y_);
printf("%lld\n", ans);
return 0;
}Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
