测试点6:存在不属于链内的结点

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 struct node{
 6     int id, val, next;
 7 };
 8 
 9 int main(){
10     int st, n, k, g, m, nn;
11     cin >> st >> n >> k;
12     node list[100000], data, tmp[n];
13     for(int i = 0; i < n; i++){
14         cin >> data.id >> data.val >> data.next;
15         list[data.id] = data;
16     }
17     g = st; nn = 0;
18     while(g != -1){
19         tmp[nn++] = list[g];
20         g = list[g].next;
21     }
22     g = nn / k;
23     m = nn % k;
24     for(int i = 0; i < g; i++) reverse(tmp+i*k, tmp+(i+1)*k);
25     reverse(tmp+g*k, tmp+g*k+m);
26     reverse(tmp, tmp+nn);
27     for(int i = 0; i < nn-1; i++) printf("%05d %d %05d\n", tmp[i].id, tmp[i].val, tmp[i+1].id);
28     printf("%05d %d -1", tmp[nn-1].id, tmp[nn-1].val);
29     
30     return 0;
31 }

 

posted on 2022-01-18 13:59  千咲  阅读(102)  评论(0)    收藏  举报