# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
987648 |
2024-05-23T09:04:17 Z |
nihon |
Network (BOI15_net) |
C++14 |
|
5 ms |
14940 KB |
#include <bits/stdc++.h>
#define N 500005
using namespace std;
int n,m,i,j,a,b,t,x,ok,l[N],f[N];
bool r[N];
vector<int> v[N];
vector<pair<int,int>> sol;
bool cmp(int a,int b)
{
return (v[a][0]<v[b][0])||(v[a][0]==v[b][0] && r[a]<r[b]);
}
int main()
{
cin>>n;
for(i=1;i<n;++i)
{
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
for(i=2;i<=n;++i)
{
if(v[i].size()==1)
{
++t;
f[t]=i;
l[i]=t;
}
}
m=v[1].size();
if(1)
{
for(i=0;i<m;++i)
{
x=v[1][i];
r[x]=1;
}
for(x=1;x<=n;++x)
{
if(r[x]) continue;
if(l[x])
{
swap(f[t],f[l[x]]);
ok=1;
break;
}
}
}
if(t%2==1 || m==1) {sol.push_back({f[t],1}); if(!(m==1 && t%2==0)) f[t]=0;}
sort(f+1,f+t,cmp);
for(i=2;i<t;)
{
if(v[f[i]][0]!=v[f[i-1]][0])
{
sol.push_back({f[i],f[i-1]});
f[i]=f[i-1]=0;
i+=2;
}
else
i++;
}
int st=0,dr=1;
while(st<=t-2)
{
st++;
while(!f[st] && st<=t-2) ++st;
if(dr<=st) dr=st+1;
while(!f[dr] && dr<=t-1) ++dr;
if(f[st] && f[dr])
{
sol.push_back({f[st],f[dr]});
f[st]=f[dr]=0;
}
}
m=sol.size();
cout<<m<<'\n';
for(i=0;i<m;++i)
{
cout<<sol[i].first<<' '<<sol[i].second<<'\n';
}
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
14936 KB |
Output is correct |
2 |
Correct |
4 ms |
14940 KB |
Output is correct |
3 |
Correct |
4 ms |
14940 KB |
Output is correct |
4 |
Correct |
5 ms |
14940 KB |
Output is correct |
5 |
Correct |
4 ms |
14940 KB |
Output is correct |
6 |
Correct |
4 ms |
14940 KB |
Output is correct |
7 |
Correct |
4 ms |
14940 KB |
Output is correct |
8 |
Correct |
4 ms |
14936 KB |
Output is correct |
9 |
Correct |
4 ms |
14940 KB |
Output is correct |
10 |
Correct |
5 ms |
14936 KB |
Output is correct |
11 |
Correct |
5 ms |
14936 KB |
Output is correct |
12 |
Correct |
4 ms |
14940 KB |
Output is correct |
13 |
Correct |
4 ms |
14940 KB |
Output is correct |
14 |
Correct |
5 ms |
14936 KB |
Output is correct |
15 |
Incorrect |
4 ms |
14936 KB |
Breaking single line is causing network to disconnect. |
16 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
14936 KB |
Output is correct |
2 |
Correct |
4 ms |
14940 KB |
Output is correct |
3 |
Correct |
4 ms |
14940 KB |
Output is correct |
4 |
Correct |
5 ms |
14940 KB |
Output is correct |
5 |
Correct |
4 ms |
14940 KB |
Output is correct |
6 |
Correct |
4 ms |
14940 KB |
Output is correct |
7 |
Correct |
4 ms |
14940 KB |
Output is correct |
8 |
Correct |
4 ms |
14936 KB |
Output is correct |
9 |
Correct |
4 ms |
14940 KB |
Output is correct |
10 |
Correct |
5 ms |
14936 KB |
Output is correct |
11 |
Correct |
5 ms |
14936 KB |
Output is correct |
12 |
Correct |
4 ms |
14940 KB |
Output is correct |
13 |
Correct |
4 ms |
14940 KB |
Output is correct |
14 |
Correct |
5 ms |
14936 KB |
Output is correct |
15 |
Incorrect |
4 ms |
14936 KB |
Breaking single line is causing network to disconnect. |
16 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
14936 KB |
Output is correct |
2 |
Correct |
4 ms |
14940 KB |
Output is correct |
3 |
Correct |
4 ms |
14940 KB |
Output is correct |
4 |
Correct |
5 ms |
14940 KB |
Output is correct |
5 |
Correct |
4 ms |
14940 KB |
Output is correct |
6 |
Correct |
4 ms |
14940 KB |
Output is correct |
7 |
Correct |
4 ms |
14940 KB |
Output is correct |
8 |
Correct |
4 ms |
14936 KB |
Output is correct |
9 |
Correct |
4 ms |
14940 KB |
Output is correct |
10 |
Correct |
5 ms |
14936 KB |
Output is correct |
11 |
Correct |
5 ms |
14936 KB |
Output is correct |
12 |
Correct |
4 ms |
14940 KB |
Output is correct |
13 |
Correct |
4 ms |
14940 KB |
Output is correct |
14 |
Correct |
5 ms |
14936 KB |
Output is correct |
15 |
Incorrect |
4 ms |
14936 KB |
Breaking single line is causing network to disconnect. |
16 |
Halted |
0 ms |
0 KB |
- |