测试点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 }
浙公网安备 33010602011771号