[PAT]リンクされたリスト上のクラス1097の重複排除(25点)

質問の意味:

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 }

 

おすすめ

転載: www.cnblogs.com/ldudxy/p/11963843.html