質問の意味:
N個の入力値の行と次のノードのアドレスと5桁のアドレスのノードを含む続いてアドレス入力及び正の整数N(<= 100000)。出力リストとリストを除去する(リストノードを組成物から除去された)ノードの同じ絶対値が除去されています。
AAAAAcceptedコード:
1 の#define HAVE_STRUCT_TIMESPEC 2の#include <ビット/ STDC ++ H> 3 使用して 名前空間STDを、 4 int型 NEX [ 100007 ]、ヴァル[ 100007 ]。 5ベクター<ペア< 整数、整数 >> ANS、ANS2。 6 INT VIS [ 100007 ]。 7 INT メイン(){ 8つの // IOS :: sync_with_stdio(偽)。 9 // cin.tie(NULL)。 10 // cout.tie(NULL)。 11 INTはN、S。 12 CIN >> S >> N; 13 のために(INT iは= 1 ; iが<= N; ++ I){ 14 のint X、Y、Z。 15 CIN >> X >> Y >> Z。 16 NEX [X] = Z; 17 ヴァル[X] = Y。 18 } 19 ながら(S =! - 1 ){ 20 であれば(VIS [ABS(ヴァル[S])]){ 21 ans2.push_back({S、ヴァル[S]})。 22個の S = NEX [S]。 23は 続けます。 24 } 25 ans.push_back({S、ヴァル[S]})。 26 VIS [ABS(ヴァル[S])] = 1 。 27個の S = NEX [S]。 28 } 29 のために(INT iは= 0 ; I <ans.size(); ++ I){ 30 のprintf(" %05D%D " 、ANS [i]が1次回、ANS [I] .second)。 31 もし(I <ans.size() - 1 ) 32 のprintf(" %05D \ n "、ANS [I + 1 ] 1次回)。 33 他の 34 のprintf(" -1 \ n個" ); 35 } 36 のために(INT iは= 0 ; I <ans2.size(); ++ I){ 37 のprintf(" %05D%のD 」、ANS2 [i]が1次回、ANS2 [I] .second) 、 38 であれば(I <ans2.size() - 1 ) 39 のprintf(" %05D \ n "、ANS2 [I + 1 ] 1次回); 40 他 41 のprintf(" -1 \ n " ); 42 } 43 リターン 0 ; 44 }