JZジュニアOJ 2293. [NOIPユニバーサルグループ1]シャムイン

タイトル説明

キュー内のN人の合計は、彼らが0より大きく2000001未満の数は、ことを確認するために、自分の番号を持っている
彼の前または背後で誰もが、それは0の代わりに使用していないなら、誰もが自分の前と人々のバックナンバーを持っている
だけの合計をチームを持参してください。
 

エントリー

最初の行は、人々の整数Nの数を表し
、それぞれの注意事項の数を表し、次のラインN
その全員を確実にするために、異なる符号を

輸出

行番号Nは、中間空間によって分離され、この数を表します。
 

サンプル入力

サンプル入力[1] 
。4 
92 31であり、
0 7 
31 0である
。7 141である
[2]サンプル入力
。5 
0 1 
1 4 
4 0 
3 2 
5 3

サンプル出力

[1]サンプル出力
92731141 
[2]サンプル出力
51342
 

データ範囲の制限

1つの#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3  のconst  int型 MAXN = 210万4  BOOL SF [MAXN]。
5  INT nは、X、Y、[MAXN]、全て、次の[MAXN]、最後[MAXN]、first1、first2。
6  INT )(メイン
 7  {
 8      freopenは(" hotel.in "" R " 、STDIN)。
9      freopenは(" hotel.out "" W " 、STDOUT)。
10      SF [ 0] = 1 11      のmemset(最後、 - 1はsizeof (最終))。
12      CIN >> N。
13      のためにint型 i = 1 ; iが<= N; iが++ 14      {
 15          のscanf(" %D%dの"、およびX&Y)。
16          次の[X] = Y。
17          最後の[Y] =のX。
18          であれば(x == 0 19              first2 = Y。
20          であれば(SF [X] == 0 21         {
 22              [++すべて] =のX。
23              SF [X] = 1 24          }
 25          であれば(SF [Y] == 0 26          {
 27              [++すべて] = Y。
28              SF [Y] = 1 29          }
 30      }
 31      のためのint型 I = 1 ; I <=全て、iは++ 32          場合(最後に[i]は] == - 1 33              first1が= [I]。
34      のためのint型 i = 1 ; iが<= N / 2 iは++; 35      {
 36          COUT << first1 << "  " << first2 << "  " 37          first1 = 次の[first1]。
38          first2 = 次の[first2]。
39      }
 40      であれば(N%2 == 1)COUT << first1。
41      リターン 0 ;
42 }

おすすめ

転載: www.cnblogs.com/anbujingying/p/11317271.html