QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#868241 | #9678. 网友小 Z 的树 | wsyear | 16 | 16ms | 11876kb | C++20 | 1.7kb | 2025-01-24 15:06:21 | 2025-01-24 15:06:22 |
Judging History
answer
#include "diameter.h"
#include <bits/stdc++.h>
#define rep(i, j, k) for (int i = (j); i <= (k); ++i)
#define per(i, j, k) for (int i = (j); i >= (k); --i)
#define SZ(v) int((v).size())
#define ALL(v) (v).begin(),(v).end()
#define fi first
#define se second
using ll = long long;
using pii = std::pair<int, int>;
using pll = std::pair<ll, ll>;
template<class T> void chkmn(T &x, T y) { if (y < x) x = y; }
template<class T> void chkmx(T &x, T y) { if (y > x) x = y; }
using namespace std;
const int maxn = 100010;
int val[maxn];
pii find_diameter(int sid, int n) {
if (n == 1) return pii(1, 1);
if (n == 2) return pii(1, 2);
if (n == 3) {
if (in(1, 2, 3)) return pii(2, 3);
if (in(2, 1, 3)) return pii(1, 3);
return pii(1, 2);
}
int x = 1, y = 2, z = 3, mxid = 0, mx = 0;
rep (i, 1, n) if (i != y && i != z) {
int cur = query(i, y, z);
if (cur >= mx) mx = cur, mxid = i;
}
x = mxid;
mxid = mx = 0;
rep (i, 1, n) if (i != x && i != z) {
int cur = query(i, x, z);
if (cur >= mx) mx = cur, mxid = i;
}
y = mxid;
mxid = mx = 0;
int mn = 1e9, t = 0;
rep (i, 1, n) if (i != x && i != y) {
int cur = query(i, x, y);
if (cur >= mx) mx = cur, mxid = i;
if (cur < mn) mn = cur, t = i;
val[i] = cur;
}
z = mxid;
if (val[z] == mn) return pii(x, y);
if (in(y, x, z)) return pii(x, z);
int disxy = mn, disxz, disyz;
if (in(t, x, z)) disxz = query(x, t, z), disyz = 2 * mx - disxy - disxz;
else disyz = query(y, t, z), disxz = 2 * mx - disxy - disyz;
int res = max({disxy, disxz, disyz});
if (disxy == res) return pii(x, y);
if (disxz == res) return pii(x, z);
return pii(y, z);
}
詳細信息
Subtask #1:
score: 16
Accepted
Test #1:
score: 16
Accepted
time: 1ms
memory: 9952kb
input:
1 100 25 1 3 2 18 3 8 4 18 5 14 6 22 7 18 8 10 9 11 10 12 11 25 12 16 13 11 14 17 15 17 16 25 17 2 18 20 19 18 20 12 21 1 22 17 23 14 24 1 50 1 37 2 27 3 10 4 25 5 16 6 17 7 10 8 36 9 16 10 6 11 48 12 2 13 28 14 30 15 10 16 44 17 31 18 1 19 6 20 7 21 30 22 42 23 45 24 23 25 27 26 39 27 45 28 48 29 4...
output:
correct
result:
ok Correct
Subtask #2:
score: 0
Wrong Answer
Dependency #1:
100%
Accepted
Test #2:
score: 0
Wrong Answer
time: 16ms
memory: 11876kb
input:
2 2006 42 1 32 2 4 3 6 4 29 5 1 6 42 7 10 8 16 9 6 10 25 11 42 12 8 13 36 14 8 15 17 16 3 17 6 18 21 19 23 20 31 21 42 22 6 23 32 24 7 25 27 26 34 27 31 28 6 29 41 30 20 31 9 32 7 33 3 34 5 35 5 36 1 37 8 38 14 39 15 40 12 41 22 95 1 94 2 88 3 13 4 71 5 37 6 45 7 87 8 24 9 76 10 54 11 69 12 95 13 90...
output:
WA
result:
wrong answer Wrong Answer
Subtask #3:
score: 0
Skipped
Dependency #2:
0%
Subtask #4:
score: 0
Skipped
Dependency #3:
0%
Subtask #5:
score: 0
Skipped
Dependency #4:
0%
Subtask #6:
score: 0
Skipped
Dependency #5:
0%
Subtask #7:
score: 0
Skipped
Dependency #6:
0%
Subtask #8:
score: 0
Skipped
Dependency #7:
0%
Subtask #9:
score: 0
Skipped
Dependency #8:
0%
Subtask #10:
score: 0
Skipped
Dependency #9:
0%
Subtask #11:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
0%