PTA 7-5再配列チェーンテーブル(25点)
14299 ワード
PTA 7-5再配列チェーンテーブル(25点)
#include
#include
using namespace std;
int main()
{
int a[100000][3],b[2],d[100000],adress,number,link,t,i,c=0;
for(int i=0;i<2;i++)
{
cin>>b[i];
}
for(i=0;i<b[1];i++)
{
cin>>adress>>number>>link;
a[adress][0]=adress;
a[adress][1]=number;
a[adress][2]=link;
}
int temp=b[0];
for(i=0;a[temp][2]!=-1;i++)// , b
{
d[i]=a[temp][0];
temp=a[temp][2];
c++;
}
d[i]=a[temp][0];
c++;
for(int i=0;i<c/2;i++)
{
a[d[c-i-1]][2]=d[i];
a[d[i]][2]=d[c-i-2];
}
if(c%2==0)
{a[d[c/2-1]][2]=-1;}
else
{
a[d[b[1]/2]][2]=-1;
}
t=a[d[c-1]][0];
for(i=0;a[t][2]!=-1;i++)
{
cout<<setw(5)<<setfill('0')<<a[t][0]<<" "<<a[t][1]<<" "<<setw(5)<<setfill('0')<<a[t][2]<<endl;
t=a[t][2];
}
cout<<setw(5)<<setfill('0')<<a[t][0]<<" "<<a[t][1]<<" "<<a[t][2]<<endl;
return 0;
}