Submission #68586130
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
struct node{
int id,d;
}a[100005];
map<int,int> pos;
bool cmp(node x,node y){
return x.d>y.d;
}
vector<int> V[100005];
int f[100005],sz[100005];
int fd(int x){
if(x==f[x]) return x;
return f[x]=fd(f[x]);
}
void link(int u,int v){
V[u].push_back(v);
V[v].push_back(u);
u=fd(u),v=fd(v);
if(u==v) return;
f[u]=v;
sz[v]+=sz[u];
}
void dfs(int u,int fa){
sz[u]=sz[fa]+1;
for(int v:V[u]){
if(v==fa) continue;
dfs(v,u);
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
int d;cin>>d;
a[i]={i,d};
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
f[i]=i,sz[i]=1;
pos[a[i].d]=i;
}
for(int i=1;i<n;i++){
int dy=a[i].d;
int s=sz[fd(a[i].id)];
int dx=dy-n+2*s;
if(!pos.count(dx)||pos[dx]<=i){
cout<<-1<<"\n";
return 0;
}
// cout<<a[i].id<<' '<<a[pos[dx]].id<<"\n";
link(a[i].id,a[pos[dx]].id);
}
dfs(a[n].id,0);
int t=0;
for(int i=1;i<=n;i++) t+=sz[i];
if(t-n!=a[n].d){
cout<<-1<<"\n";
return 0;
}
for(int i=1;i<=n;i++){
for(int j:V[i]){
if(j>i) cout<<i<<" "<<j<<"\n";
}
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Distance Sums |
| User | george0929 |
| Language | C++ 20 (gcc 12.2) |
| Score | 900 |
| Code Size | 1229 Byte |
| Status | AC |
| Exec Time | 79 ms |
| Memory | 19704 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 900 / 900 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample1.txt, sample2.txt, sample3.txt |
| All | sample1.txt, sample2.txt, sample3.txt, 1.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 3.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 4.txt, 40.txt, 41.txt, 42.txt, 5.txt, 6.txt, 7.txt, 8.txt, 9.txt, sample1.txt, sample2.txt, sample3.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 1.txt | AC | 2 ms | 3672 KiB |
| 10.txt | AC | 76 ms | 19576 KiB |
| 11.txt | AC | 47 ms | 16968 KiB |
| 12.txt | AC | 35 ms | 15676 KiB |
| 13.txt | AC | 56 ms | 17540 KiB |
| 14.txt | AC | 77 ms | 19624 KiB |
| 15.txt | AC | 76 ms | 19488 KiB |
| 16.txt | AC | 78 ms | 19348 KiB |
| 17.txt | AC | 78 ms | 19336 KiB |
| 18.txt | AC | 39 ms | 15952 KiB |
| 19.txt | AC | 79 ms | 19508 KiB |
| 2.txt | AC | 2 ms | 3748 KiB |
| 20.txt | AC | 77 ms | 19560 KiB |
| 21.txt | AC | 31 ms | 14092 KiB |
| 22.txt | AC | 76 ms | 19420 KiB |
| 23.txt | AC | 76 ms | 19452 KiB |
| 24.txt | AC | 67 ms | 18024 KiB |
| 25.txt | AC | 35 ms | 15448 KiB |
| 26.txt | AC | 37 ms | 15360 KiB |
| 27.txt | AC | 36 ms | 15568 KiB |
| 28.txt | AC | 32 ms | 14592 KiB |
| 29.txt | AC | 78 ms | 19468 KiB |
| 3.txt | AC | 7 ms | 5128 KiB |
| 30.txt | AC | 77 ms | 19588 KiB |
| 31.txt | AC | 78 ms | 19152 KiB |
| 32.txt | AC | 78 ms | 19324 KiB |
| 33.txt | AC | 67 ms | 19228 KiB |
| 34.txt | AC | 79 ms | 19496 KiB |
| 35.txt | AC | 66 ms | 19464 KiB |
| 36.txt | AC | 67 ms | 19624 KiB |
| 37.txt | AC | 76 ms | 19368 KiB |
| 38.txt | AC | 77 ms | 19416 KiB |
| 39.txt | AC | 78 ms | 19484 KiB |
| 4.txt | AC | 5 ms | 4768 KiB |
| 40.txt | AC | 76 ms | 19368 KiB |
| 41.txt | AC | 77 ms | 19132 KiB |
| 42.txt | AC | 62 ms | 16324 KiB |
| 5.txt | AC | 36 ms | 11572 KiB |
| 6.txt | AC | 78 ms | 19588 KiB |
| 7.txt | AC | 77 ms | 19560 KiB |
| 8.txt | AC | 77 ms | 19636 KiB |
| 9.txt | AC | 77 ms | 19704 KiB |
| sample1.txt | AC | 2 ms | 3508 KiB |
| sample2.txt | AC | 1 ms | 3488 KiB |
| sample3.txt | AC | 1 ms | 3452 KiB |