Codeforces Round #279 (Div. 2) B - Queue 水题
#include<iostream> #include<mem.h> using namespace std; int p[1000001],q[1000001]; int main() { int n,x,y; memset(q,0,sizeof(q)); cin>>n; while(n) { cin>>x>>y; p[x]=y; q[x]++; q[y]--; n--;//p[x]表示在x之后两位的数是什么 //q[x]表示x这个数究竟有多少个 } int i=0; while(true) { if(q[i]==1) break; i++;//找出第一位数是哪个 } int j=p[0]; while(j&&i) { cout<<i<<" "<<j<<" "; i=p[i];//i就等于了i之后俩位的数 j=p[j];//j就等于了j之后俩位的数 } if(i) cout<<i;//判断奇数还是偶数 //就是这样子,喵~ return 0; }