Submission #3194170


Source Code Expand

#include<bits/stdc++.h>
#define ll long long
#define db double
#define lowbit(p) (p&(-p))
#define pb push_back
#define mp make_pair
#define pii pair<int,int>
#define A first
#define B second
using namespace std;
void read(int &x){
	x=0; char c=getchar(); int p=1;
	for (;c<48;c=getchar())if (c=='-')p=-1;
	for (;c>47;c=getchar())x=(x<<1)+(x<<3)+(c^48);
	x*=p;
}
void read(ll &x){
	x=0; char c=getchar(); int p=1;
	for (;c<48;c=getchar())if (c=='-')p=-1;
	for (;c>47;c=getchar())x=(x<<1)+(x<<3)+(c^48);
	x*=p;
}
void Min(int &x,int y){
	if (x>y)x=y;
}
void Max(int &x,int y){
	if (x<y)x=y;
}
void Min(ll &x,ll y){
	if (x>y)x=y;
}
void Max(ll &x,ll y){
	if (x<y)x=y;
}

#define M 100005
struct ed{
	int x,nx;
}e[M<<1];
int fa[M],nx[M],ecnt=1,n,mx,id,val[M],Q[M],tot;
bool mark[M];
void add(int x,int y){
	e[ecnt]=(ed){y,nx[x]};
	nx[x]=ecnt++;
}
void dfs(int f,int x,int d){	
	fa[x]=f;
//	printf("%d->%d\n",f,x);
	if (d>mx){
		mx=d;
		id=x;
	}
	for (int i=nx[x];i;i=e[i].nx)if (e[i].x!=f){
		dfs(x,e[i].x,d+1);
	}
}
int qu(int x){
	int res=0,i,j,y;
	for (i=nx[x];i;i=e[i].nx)if (!mark[e[i].x]){
		y=e[i].x;
		for (j=nx[y];j;j=e[j].nx)if (e[j].x!=x){
			return -1;
		}	
		res++;
	}
	return res;
}
void chk(){
	mx=0;
	int tmp,i,j,x;
	dfs(0,1,0);
//	printf("id=%d\n",id);
	mx=0;
	dfs(0,id,0);
//	printf("id=%d\n",id);
	for (x=id;x;x=fa[x]){
//		printf("%d ",x);
		Q[++tot]=x;
		mark[x]=1;
//		printf("fa[%d]=%d\n",x,fa[x]);
	}
//	printf("\n");
	for (i=1;i<=tot;i++){
		tmp=qu(Q[i]);
		if (tmp==-1){
			printf("-1\n");
			exit(0);
		}
		else {
			val[i]=tmp;
		}
	}
	for (i=1;i<=tot;i++){
		if (val[i]!=val[tot-i+1]){
			if (val[i]<val[tot-i+1]){
				return ;
			}
			else{
				for (j=1;j<=tot-j+1;j++){
					swap(Q[j],Q[tot-j+1]);
					swap(val[j],val[tot-j+1]);
				}
				return ;
			}
		}
	}
}
void pt(){
	int now=0,i,l,r;
	for (i=1;i<=tot;i++){
		l=now+2; r=now+val[i]+1;
		for (int x=l;x<=r;x++){
			printf("%d ",x);
		}
		printf("%d ",now+1);
		now=r;
	}
	printf("\n");
}
int main(){
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
//	freopen("1.in","r",stdin);
	read(n);
	int i,x,y;
	for (i=1;i<n;i++){
		read(x); read(y);
		add(x,y);
		add(y,x);	
	}
	chk();
	pt();
	return 0;
}

Submission Info

Submission Time
Task F - Permutation Tree
User Satori_____
Language C++14 (GCC 5.4.1)
Score 900
Code Size 2323 Byte
Status AC
Exec Time 34 ms
Memory 8704 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 900 / 900
Status
AC × 3
AC × 55
Set Name Test Cases
Sample sample1.txt, sampleId.txt, sampleNo.txt
All id.txt, oshii_0.txt, oshii_1.txt, rnd10000_9876.txt, rnd10_4.txt, rnd10_l.txt, rnd20000_9876.txt, rnd20_18.txt, rnd20_4.txt, rnd20_l.txt, rnd3000_2984.txt, rnd3000_l.txt, rnd_0.txt, rnd_1.txt, rnd_10.txt, rnd_100.txt, rnd_1000.txt, rnd_10000.txt, rnd_100000.txt, rnd_1000000.txt, rnd_1000001.txt, rnd_1000002.txt, rnd_100001.txt, rnd_100002.txt, rnd_10001.txt, rnd_10002.txt, rnd_1001.txt, rnd_1002.txt, rnd_101.txt, rnd_102.txt, rnd_2.txt, rnd_3.txt, rnd_4.txt, rnd_5.txt, rnd_6.txt, rnd_7.txt, rnd_70.txt, rnd_700.txt, rnd_7000.txt, rnd_70000.txt, rnd_700000.txt, rnd_700001.txt, rnd_700002.txt, rnd_70001.txt, rnd_70002.txt, rnd_7001.txt, rnd_7002.txt, rnd_701.txt, rnd_702.txt, rnd_71.txt, rnd_72.txt, sample1.txt, sampleId.txt, sampleNo.txt, star.txt
Case Name Status Exec Time Memory
id.txt AC 34 ms 8704 KB
oshii_0.txt AC 17 ms 2688 KB
oshii_1.txt AC 17 ms 2688 KB
rnd10000_9876.txt AC 4 ms 1152 KB
rnd10_4.txt AC 1 ms 256 KB
rnd10_l.txt AC 1 ms 256 KB
rnd20000_9876.txt AC 7 ms 1408 KB
rnd20_18.txt AC 1 ms 256 KB
rnd20_4.txt AC 1 ms 256 KB
rnd20_l.txt AC 1 ms 256 KB
rnd3000_2984.txt AC 2 ms 512 KB
rnd3000_l.txt AC 2 ms 384 KB
rnd_0.txt AC 16 ms 2432 KB
rnd_1.txt AC 15 ms 2304 KB
rnd_10.txt AC 1 ms 256 KB
rnd_100.txt AC 1 ms 256 KB
rnd_1000.txt AC 1 ms 256 KB
rnd_10000.txt AC 3 ms 512 KB
rnd_100000.txt AC 23 ms 3200 KB
rnd_1000000.txt AC 32 ms 5248 KB
rnd_1000001.txt AC 33 ms 6016 KB
rnd_1000002.txt AC 34 ms 7936 KB
rnd_100001.txt AC 4 ms 896 KB
rnd_100002.txt AC 4 ms 768 KB
rnd_10001.txt AC 1 ms 256 KB
rnd_10002.txt AC 1 ms 384 KB
rnd_1001.txt AC 1 ms 256 KB
rnd_1002.txt AC 1 ms 256 KB
rnd_101.txt AC 1 ms 256 KB
rnd_102.txt AC 1 ms 256 KB
rnd_2.txt AC 18 ms 2688 KB
rnd_3.txt AC 16 ms 2432 KB
rnd_4.txt AC 16 ms 2432 KB
rnd_5.txt AC 15 ms 2432 KB
rnd_6.txt AC 14 ms 2048 KB
rnd_7.txt AC 14 ms 2176 KB
rnd_70.txt AC 1 ms 256 KB
rnd_700.txt AC 1 ms 256 KB
rnd_7000.txt AC 2 ms 512 KB
rnd_70000.txt AC 17 ms 2304 KB
rnd_700000.txt AC 23 ms 4864 KB
rnd_700001.txt AC 23 ms 3456 KB
rnd_700002.txt AC 24 ms 5888 KB
rnd_70001.txt AC 3 ms 512 KB
rnd_70002.txt AC 3 ms 768 KB
rnd_7001.txt AC 1 ms 256 KB
rnd_7002.txt AC 1 ms 256 KB
rnd_701.txt AC 1 ms 256 KB
rnd_702.txt AC 1 ms 256 KB
rnd_71.txt AC 1 ms 256 KB
rnd_72.txt AC 1 ms 256 KB
sample1.txt AC 1 ms 256 KB
sampleId.txt AC 1 ms 256 KB
sampleNo.txt AC 1 ms 256 KB
star.txt AC 23 ms 3200 KB