坑成狗,第一句说a singly linked list L,结果数据有不是一条链的
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<string>
#include<cstring>
#include<cmath>
#include<map>
#include<stack>
#define N 100005
#define ll long long
using namespace std;
int data[N],nxt[N];
stack<int>s;
vector<int>v;
int main()
{
int bg,n,l,i,j,a,b,c,p,len;
while(scanf("%d%d%d",&bg,&n,&l)!=EOF)
{
v.clear();
for(i = 0;i<n;i++)
{
scanf("%d%d%d",&a,&b,&c);
data[a] = b;
nxt[a] = c;
}
p = len = 0;
for(i = bg;i!=-1;i = nxt[i])len++;
i = bg;
while(p+l<=len)
{
for(j = 0;j<l;j++,p++)
{
s.push(i);
i = nxt[i];
}
while(!s.empty())
{
v.push_back(s.top());
s.pop();
}
}
while(i!=-1)
{
v.push_back(i);
i = nxt[i];
}
for(i = 0;i<v.size()-1;i++)printf("%05d %d %05d\n",v[i],data[v[i]],v[i+1]);
printf("%05d %d -1\n",v[i],data[v[i]]);
}
return 0;
}