| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 485869 | rainboy | ČVENK (COI15_cvenk) | C11 | 41 ms | 2204 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
}컴파일 시 표준 에러 (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... | ||||
