课堂练习:队列复原 未完成
小瓜现在让1到n这n个整数排成一列,但是他只告诉你每个整数的后面那个数是什么(最后一个整数的后面那个数是0),请你帮忙复原这个队列。
输入格式
第一行一个整数n(n<=100000),表示有n个整数。 接下来n行,每行两个数i,j,表示排在整数i后面的那个数是j。
输出格式
n行,每行一个整数,表示完整的队列。
输入样例
4
1 3
2 4
3 2
4 0
输出样例
1
3
2
4
课堂练习:队列复原 未完成
小瓜现在让1到n这n个整数排成一列,但是他只告诉你每个整数的后面那个数是什么(最后一个整数的后面那个数是0),请你帮忙复原这个队列。
输入格式
第一行一个整数n(n<=100000),表示有n个整数。 接下来n行,每行两个数i,j,表示排在整数i后面的那个数是j。
输出格式
n行,每行一个整数,表示完整的队列。
输入样例
4
1 3
2 4
3 2
4 0
输出样例
1
3
2
4
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
#include <algorithm>
#include <stdlib.h>
#include <cstdio>
#include <set>
#define ll long long
using namespace std;
ll ans[100000];ll array[100000];
int main()
{
ll n,m,t,x;
cin>>t;x=t;
while(t--)
{
cin>>n>>m;
ans[m]=n;
}ll k=x-1;ll j=0;
for(ll i=1;i<=x;i++)
{
array[k]=ans[j];
j=array[k];
k--;
}
for(ll i=0;i<x;i++)
{
cout<<array[i]<<endl;
}
}