24'。最后一个测试点没过,有大佬可以指出则磕头跪谢。
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
struct List{
int data;
int next;
};
int main()
{
int first,n,k;
cin>>first>>n>>k;
List myL[100001];
vector<vector<int> > v(n/k+1);
for(int i=0;i<n;i++){
int a;
cin>>a;
cin>>myL[a].data>>myL[a].next;
}
int adr=first;
for(int i=0;(i<=n/k)&&(adr!=-1);i++){
for(int j=0;(j<k)&&(adr!=-1);j++){
v[i].push_back(adr);
adr=myL[adr].next;
}
}
for(int i=0,f=0;i<n/k;i++){
for(int j=k-1;j>=0;j--){
if(f==0){
printf("%05d %d ",v[i][j],myL[v[i][j]].data);
f++;
}else{
printf("%05d\n%05d %d ",v[i][j],v[i][j],myL[v[i][j]].data);
}
}
}
if(n%k!=0){
for(int j=0;j<v[n/k].size();j++){
printf("%05d\n%05d %d ",v[n/k][j],v[n/k][j],myL[v[n/k][j]].data);
}
}
printf("-1");
return 0;
}