Please sign in first.
Submission #3807307
Source Code Expand
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <string.h>
#include <vector>
#include <math.h>
#include <limits>
#include <set>
#include <map>
using namespace std;
#define pb push_back
#define SZ 2333333
typedef long long ll;
int fst[SZ],nxt[SZ],vb[SZ],cap[SZ],ff[SZ],M=1,N=0;
#define ad_de ad_dl
void _ad_dl(int a,int b,int c) {++M;nxt[M]=fst[a];fst[a]=M;vb[M]=b;cap[M]=c;}
void ad_dl(int a,int b,int c)
{_ad_dl(a,b,c); _ad_dl(b,a,0);}
int S,T,q[SZ],d[SZ];
bool bfs()
{
memset(d,-1,4*(N+1));
d[T]=0; q[1]=T; int h=1,t=2;
while(h!=t)
{
int cur=q[h++];
for(int e=fst[cur];e;e=nxt[e])
{
int b=vb[e];
if(d[b]==-1&&cap[e^1])
{
d[b]=d[cur]+1, q[t++]=b;
if(b==S) return 1;
}
}
}
return d[S]!=-1;
}
int dfs(int x,int f)
{
if(f<=0) return 0;
if(x==T) return f;
int ca=0;
for(int& e=fst[x];e;e=nxt[e])
{
int b=vb[e];
if(d[b]+1!=d[x]) continue;
int w=dfs(b,(cap[e]<f-ca)?cap[e]:(f-ca));
cap[e]-=w; cap[e^1]+=w; ca+=w;
if(ca==f) break;
}
if(!ca) d[x]=-1;
return ca;
}
#define inf 2e9+3
int dinic()
{
int ans=0;
memcpy(ff,fst,4*(N+1));
while(bfs())
{
ans+=dfs(S,inf);
memcpy(fst,ff,4*(N+1));
}
return ans;
}
int n;
#define fi first
#define se second
typedef pair<int,int> pii;
#define mp make_pair
vector<int> t[SZ],g[SZ],u[SZ];
int fa[SZ],mat[SZ];
pii ts[SZ];
void dfs(int x)
{
for(auto s:u[x])
{
if(!mat[s]) continue;
int p=mat[s];
ts[s]=pii(x,p);
mat[s]=0;dfs(p);
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<n;++i)
{
int a,b;
scanf("%d",&a);
while(a--)
scanf("%d",&b),
t[i].pb(b),
u[b].pb(i);
}
N=n+n+2; S=N-1; T=N;
for(int i=2;i<=n;++i)
ad_de(S,i,1);
for(int i=1;i<n;++i)
{
for(auto s:t[i])
ad_de(s,i+n,1),g[i].pb(M);
ad_de(i+n,T,1);
}
int s=dinic();
if(s!=n-1)
{
puts("-1");
return 0;
}
for(int i=1;i<n;++i)
for(int j=0;j<t[i].size();++j)
if(cap[g[i][j]])
mat[i]=t[i][j];
fa[1]=-1; dfs(1);
for(int i=1;i<n;++i)
if(!ts[i].fi)
{
puts("-1");
return 0;
}
for(int i=1;i<n;++i)
printf("%d %d\n",ts[i].fi,ts[i].se);
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Construction of a tree |
| User | fjzzq2002 |
| Language | C++14 (GCC 5.4.1) |
| Score | 2200 |
| Code Size | 2401 Byte |
| Status | AC |
| Exec Time | 282 ms |
| Memory | 211072 KiB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:88:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&n);
^
./Main.cpp:92:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&a);
^
./Main.cpp:96:14: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
u[b].pb(i);
^
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 2200 / 2200 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample01.txt, sample02.txt, sample03.txt |
| All | sample01.txt, sample02.txt, sample03.txt, in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in46.txt, in47.txt, in48.txt, in49.txt, in50.txt, in51.txt, in52.txt, in53.txt, in54.txt, in55.txt, in56.txt, in57.txt, in58.txt, in59.txt, in60.txt, in61.txt, in62.txt, in63.txt, in64.txt, in65.txt, in66.txt, in67.txt, sample01.txt, sample02.txt, sample03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| in01.txt | AC | 220 ms | 199808 KiB |
| in02.txt | AC | 92 ms | 179456 KiB |
| in03.txt | AC | 211 ms | 199680 KiB |
| in04.txt | AC | 105 ms | 186240 KiB |
| in05.txt | AC | 160 ms | 202492 KiB |
| in06.txt | AC | 218 ms | 202368 KiB |
| in07.txt | AC | 257 ms | 201856 KiB |
| in08.txt | AC | 282 ms | 202624 KiB |
| in09.txt | AC | 277 ms | 202624 KiB |
| in10.txt | AC | 113 ms | 187520 KiB |
| in11.txt | AC | 133 ms | 187776 KiB |
| in12.txt | AC | 138 ms | 187392 KiB |
| in13.txt | AC | 146 ms | 188160 KiB |
| in14.txt | AC | 150 ms | 189824 KiB |
| in15.txt | AC | 88 ms | 183680 KiB |
| in16.txt | AC | 94 ms | 183680 KiB |
| in17.txt | AC | 100 ms | 183808 KiB |
| in18.txt | AC | 99 ms | 183936 KiB |
| in19.txt | AC | 103 ms | 184064 KiB |
| in20.txt | AC | 153 ms | 208504 KiB |
| in21.txt | AC | 189 ms | 211072 KiB |
| in22.txt | AC | 261 ms | 208256 KiB |
| in23.txt | AC | 114 ms | 187392 KiB |
| in24.txt | AC | 119 ms | 187776 KiB |
| in25.txt | AC | 134 ms | 190720 KiB |
| in26.txt | AC | 124 ms | 188032 KiB |
| in27.txt | AC | 133 ms | 188544 KiB |
| in28.txt | AC | 132 ms | 190720 KiB |
| in29.txt | AC | 114 ms | 187392 KiB |
| in30.txt | AC | 117 ms | 187392 KiB |
| in31.txt | AC | 92 ms | 183808 KiB |
| in32.txt | AC | 93 ms | 183936 KiB |
| in33.txt | AC | 94 ms | 184064 KiB |
| in34.txt | AC | 90 ms | 183680 KiB |
| in35.txt | AC | 93 ms | 183936 KiB |
| in36.txt | AC | 91 ms | 183808 KiB |
| in37.txt | AC | 89 ms | 183680 KiB |
| in38.txt | AC | 88 ms | 183680 KiB |
| in39.txt | AC | 89 ms | 183680 KiB |
| in40.txt | AC | 89 ms | 183680 KiB |
| in41.txt | AC | 193 ms | 202112 KiB |
| in42.txt | AC | 190 ms | 202496 KiB |
| in43.txt | AC | 212 ms | 203264 KiB |
| in44.txt | AC | 195 ms | 202496 KiB |
| in45.txt | AC | 211 ms | 203520 KiB |
| in46.txt | AC | 217 ms | 203392 KiB |
| in47.txt | AC | 195 ms | 202624 KiB |
| in48.txt | AC | 206 ms | 203136 KiB |
| in49.txt | AC | 187 ms | 204416 KiB |
| in50.txt | AC | 180 ms | 204416 KiB |
| in51.txt | AC | 179 ms | 204416 KiB |
| in52.txt | AC | 200 ms | 204288 KiB |
| in53.txt | AC | 197 ms | 204288 KiB |
| in54.txt | AC | 197 ms | 204288 KiB |
| in55.txt | AC | 195 ms | 204288 KiB |
| in56.txt | AC | 201 ms | 204160 KiB |
| in57.txt | AC | 73 ms | 182528 KiB |
| in58.txt | AC | 72 ms | 178432 KiB |
| in59.txt | AC | 217 ms | 199680 KiB |
| in60.txt | AC | 226 ms | 194304 KiB |
| in61.txt | AC | 118 ms | 185984 KiB |
| in62.txt | AC | 225 ms | 200192 KiB |
| in63.txt | AC | 164 ms | 194816 KiB |
| in64.txt | AC | 180 ms | 194304 KiB |
| in65.txt | AC | 199 ms | 195200 KiB |
| in66.txt | AC | 222 ms | 193792 KiB |
| in67.txt | AC | 198 ms | 194560 KiB |
| sample01.txt | AC | 73 ms | 182528 KiB |
| sample02.txt | AC | 73 ms | 178432 KiB |
| sample03.txt | AC | 74 ms | 182528 KiB |