QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#820562 | #9713. Kill the tree | Loxilante | WA | 207ms | 36188kb | C++20 | 1.5kb | 2024-12-18 21:50:11 | 2024-12-18 21:50:12 |
Judging History
answer
#include <bits/stdc++.h>
#define rep(i, l, r) for(int i = l; i < r; i++)
#define hrp(i, l, r) for(int i = l; i <= r; i++)
#define rev(i, r, l) for(int i = r; i >= l; i--)
#define int ll
using namespace std;
typedef long long ll;
template<typename tn = int> tn next(void) { tn k; cin>>k; return k; }
#ifndef LOCAL
#define D(...) 0
#define I(...) 0
#endif
const int U = 7e5;
int cen[U], mxs[U], siz[U], fa[U];
vector<int> edge[U];
bool chkmin(int&a, int b) { return a > b ? a = b, 1 : 0; }
void dfs(int e, int f)
{
siz[e] = 1; cen[e] = e; fa[e] = f;
for(auto y: edge[e]) if (y != f) dfs(y, e), mxs[e] = max(mxs[e], siz[y]), siz[e] += siz[y];
for(auto y: edge[e]) if (y != f)
{
int now = cen[y];
while(now != e)
{
if (max(mxs[now], siz[e]-siz[now]) <= siz[e]/2) { cen[e] = now; break; }
else now = fa[now];
}
}
}
signed main(void)
{
#ifdef LOCAL
// freopen("C:\\Users\\Loxil\\Desktop\\IN.txt", "r", stdin);
// freopen("C:\\Users\\Loxil\\Desktop\\OUT.txt", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin>>n;
rep(i, 1, n) { int f, t; cin>>f>>t; edge[f].push_back(t); edge[t].push_back(f); }
dfs(1, 0);
hrp(i, 1, n)
{
int a = cen[i], b = fa[cen[i]] && max(mxs[fa[cen[i]]], siz[i]-siz[fa[cen[i]]]) <= siz[i]/2 ? fa[cen[i]] : 0;
cout<<a<<(b ? b : ' ')<<endl;
}
return 0;
}
/*
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 207ms
memory: 36188kb
input:
200000 42924 18271 60536 154257 107175 95680 196335 71607 158051 155259 110869 30974 143595 43516 4228 138046 26249 183847 123888 199873 15009 25362 166527 175160 15257 67159 124779 199363 148904 54047 5988 18123 58281 40739 44562 143880 72819 132492 137782 29662 130741 78276 55073 93292 82700 18328...
output:
1343851 14367045886 126220106649 10839344121 953135226 116080147311 14118032 14798332 742874120 16196332 387932 17849932 162544171549 14441332 12726232 188325133093 17180232 4355832 2817932 125217140604 18665132 17639745633 2642532 269823745 3006332 12896532 14803619661 14173332 11569132 349132 8560...
result:
wrong answer 1st numbers differ - expected: '1', found: '1343851'