#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#include "debug.h"
#else
#define debug(...)
#endif
using ll=long long;
using pii=array<int,2>;
using tii=array<int,3>;
using ti4=array<int,4>;
const int N=105;
int n,p[N],dep[N],c[N],d[N][N];
vector<int> L[N];
vector<int> g[N],ans[2][N];
void dfs(int u){
L[dep[u]].push_back(u);
for(int v: g[u]) if(p[u]!=v){
p[v]=u;
dep[v]=dep[u]+1;
dfs(v);
}
}
void dfs2(int u,int p,int r){
for(int v: g[u]) if(p!=v){
d[r][v]=d[r][u]+1;
dfs2(v,u,r);
}
}
int main(){
ios::sync_with_stdio(false); cin.tie(0);
cin>>n;
for(int u,v,i=1;i<n;i++){
cin>>u>>v;
u++; v++;
g[u].push_back(v);
g[v].push_back(u);
}
for(int i=1;i<=n;i++) dfs2(i,0,i);
int r=0,v=1e9;
for(int i=1;i<=n;i++){
int di=0;
for(int j=1;j<=n;j++) di=max(di,d[i][j]);
if(v>di){
r=i;
v=di;
}
}
dep[r]=1;
dfs(r);
for(int i=1;i<=n;i++) c[i]=i;
for(int d=n;d>=1;d--) if(L[d].size()){
for(int u=1;u<=n;u++){
int v=c[u];
if(dep[u]<=d){
ans[0][u].push_back(v);
ans[0][u].push_back(v);
ans[1][u].push_back(v);
ans[1][u].push_back(v);
} else{
ans[0][u].push_back(p[v]);
ans[0][u].push_back(p[v]);
ans[1][u].push_back(v);
ans[1][u].push_back(p[v]);
c[u]=p[v];
assert(dep[c[u]]==d);
}
}
}
cout<<ans[0][1].size()<<"\n";
for(int i=1;i<=n;i++){
for(int x: ans[0][i]) cout<<x-1<<" ";
cout<<"\n";
}
for(int i=1;i<=n;i++){
for(int x: ans[1][i]) cout<<x-1<<" ";
cout<<"\n";
}
double res=0;
for(int u=1;u<=n;u++) for(int v=1;v<=n;v++){
int t=0;
while(ans[0][u][t]!=ans[1][v][t]) t++;
if((double)t/d[u][v]>=100) debug((double)t/d[u][v],u,v,dep[u],dep[v],dep[ans[0][u][t]],t,d[u][v]);
res=max(res,(double)t/d[u][v]);
}
debug(res);
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
1 ms |
604 KB |
Partially correct |
2 |
Partially correct |
1 ms |
604 KB |
Partially correct |
3 |
Partially correct |
1 ms |
604 KB |
Partially correct |
4 |
Partially correct |
1 ms |
604 KB |
Partially correct |
5 |
Partially correct |
1 ms |
540 KB |
Partially correct |
6 |
Partially correct |
1 ms |
604 KB |
Partially correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
0 ms |
348 KB |
Output is correct |
9 |
Correct |
1 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
0 ms |
348 KB |
Output is correct |
13 |
Correct |
0 ms |
348 KB |
Output is correct |
14 |
Correct |
0 ms |
348 KB |
Output is correct |
15 |
Correct |
0 ms |
348 KB |
Output is correct |
16 |
Partially correct |
1 ms |
348 KB |
Partially correct |
17 |
Partially correct |
0 ms |
348 KB |
Partially correct |
18 |
Partially correct |
0 ms |
348 KB |
Partially correct |
19 |
Partially correct |
1 ms |
348 KB |
Partially correct |
20 |
Partially correct |
1 ms |
348 KB |
Partially correct |
21 |
Partially correct |
0 ms |
348 KB |
Partially correct |
22 |
Partially correct |
0 ms |
348 KB |
Partially correct |
23 |
Partially correct |
0 ms |
348 KB |
Partially correct |
24 |
Partially correct |
1 ms |
604 KB |
Partially correct |
25 |
Partially correct |
1 ms |
604 KB |
Partially correct |