トピック:
問題の説明
共有学校の教師がある
Nの
公開鍵ボックスに配置する必要がすべてのキーの規定に従って教室は、先生が家の鍵を取ることができません。クラスの各先生の前に、彼らはクラスの後、ドアを開き、キーボックスに戻ってキーを置くために、キーボックスキーから自分の公立学校の教室を見つける必要があります。
キーボックス合計 N個の ハングアップしたように、行の左から右へのフック、 N キー教室。教師は、キーを混同しないように位置をぶら下げ鍵の束は、固定されていないが、キーで標識されています。
するたびにキーをピックアップ、および他のキーが動かない間、教師は、彼らは除去する必要があるキーを見つけます。教師はまた、キーフックは左端の空に見つける際に、各キーにも、フックにぶら下がっキー。多くの教師もキーがある場合、また昇順にその番号へのキーを押してください。同時に両方の教師が鍵を取るために別の教師の鍵である場合は、最初のキー教師はまた戻って全体を削除します。
今日は、キーボックス内の小から大に番号順にキーの始まりです。そこ Kの 授業に出席するため、教師、各教師が必要なキーが与えられ、キーボックス内のキーは最終的に何が何であるかをオーダー、授業時間も重要な時間であると仮定すると、クラスのクラスの時間と期間を開始?
キーボックス合計 N個の ハングアップしたように、行の左から右へのフック、 N キー教室。教師は、キーを混同しないように位置をぶら下げ鍵の束は、固定されていないが、キーで標識されています。
するたびにキーをピックアップ、および他のキーが動かない間、教師は、彼らは除去する必要があるキーを見つけます。教師はまた、キーフックは左端の空に見つける際に、各キーにも、フックにぶら下がっキー。多くの教師もキーがある場合、また昇順にその番号へのキーを押してください。同時に両方の教師が鍵を取るために別の教師の鍵である場合は、最初のキー教師はまた戻って全体を削除します。
今日は、キーボックス内の小から大に番号順にキーの始まりです。そこ Kの 授業に出席するため、教師、各教師が必要なキーが与えられ、キーボックス内のキーは最終的に何が何であるかをオーダー、授業時間も重要な時間であると仮定すると、クラスのクラスの時間と期間を開始?
入力形式
入力の最初の行は二つの整数含ま
N
、
Kを
。
次の Kの 三つの整数のライン W 、 S 、 Cは 、あなたが教師を使用するキー番号、学校はクラスの時間と期間を開始表します。そこに同じ鍵を使用して多くの教師かもしれませんが、キーの時間を使って、教師は重複しません。
入力データが入力フォーマットを満たしていることを確認し、あなたは、データの正当性を確認する必要はありません。
次の Kの 三つの整数のライン W 、 S 、 Cは 、あなたが教師を使用するキー番号、学校はクラスの時間と期間を開始表します。そこに同じ鍵を使用して多くの教師かもしれませんが、キーの時間を使って、教師は重複しません。
入力データが入力フォーマットを満たしていることを確認し、あなたは、データの正当性を確認する必要はありません。
出力フォーマット
出力線を含む
N個の
整数を、それぞれ吊りフックキー番号のそれぞれについて、隣接する整数の間のスペースで区切られました。
サンプル入力
5 2
4 3 3
2 2 7
4 3 3
2 2 7
サンプル出力
1 4 3 2 5
サンプル説明
時刻から最初の教師は、瞬間6におけるように、キー、時間の3つのユニットを使用して、鍵3番4教室の使用を開始します。鍵の使用を開始する時刻2から第教師は、また、重要な瞬間9にそれほど時間の7単位を、使用します。
キー状態各臨界時間以下の後に(Xは空を表す):
時間2の後1X345に、
3時間1X3X5後、
時間6 143X5後、
時間は9 14325です。
キー状態各臨界時間以下の後に(Xは空を表す):
時間2の後1X345に、
3時間1X3X5後、
時間6 143X5後、
時間は9 14325です。
サンプル入力
5 7
1 1 14
3 3 12
1 15 12
2 20 7
3 18 12
4 21 19
5 30 9
1 1 14
3 3 12
1 15 12
2 20 7
3 18 12
4 21 19
5 30 9
サンプル出力
1 2 3 5 4
評価尺度の例とで合意
評価のユースケース30%,. 1≤ための
N
、
K
≤10 ,. 1≤
W
≤
N
、1≤。
S
、
C
≤30、
評価用症例の60%,. 1≤ N 、 K ≤50、1≤ W ≤ N 、 。≤1 S ≤300、1≤ C ≤50、
レビューのためにすべてのユースケース,. 1≤ N 、 K ≤1000,1≤ W ≤ N 、1≤。 S ≤10000,1≤ C ≤100。
評価用症例の60%,. 1≤ N 、 K ≤50、1≤ W ≤ N 、 。≤1 S ≤300、1≤ C ≤50、
レビューのためにすべてのユースケース,. 1≤ N 、 K ≤1000,1≤ W ≤ N 、1≤。 S ≤10000,1≤ C ≤100。
問題解決:
#include <iostreamの> する#include <アルゴリズム> 使用して 名前空間STD; ストラクトノード{ INT W; // キー番号 INT T; // 時間 のintタイプ; // 0を借りを表し、1は、さらに、バック表す BOOLの 演算子(< CONSTノードA&)のconst { 返す(T == AT)(W <AW):( T <?AT); } } A [ 2001 ]; int型のmain() { int型N-、K; CIN >> N- K、 INT = M 0; int型、C、S、W; 一方、(K-- ) { CIN W >> C >> S。 [M] .W = W。 [M] .T = C。 [M] .TYPE = 0 。 M ++ ; [M] .W = W。 [M] .T = S + C。 [M] .TYPE = 1 。 M ++ ; } ソート(A + M)。 int型の鍵[ 1001 ]; // 钥匙挂钩 以下のために(int型 I = 0 ;私は= < 1001 ; I ++は) { キー[I] = Iであり; } int型 I = 0、J = 0 ; のための(I = 0 ;私は<M、I = J) { ため(JをI =; J <&& mは[J]が.T [I] .T ==; Jを++); // 時間を見つけるときに、同じ時間 // も同時に状況の処理 のために(int型 K = I、K <J ; K ++ ) { IF([K] .TYPE == 1 ) { int型のP; のために(P =。1 ; P <= N - &&キー[P]、P ++ ); キー[P] = [K] .W; } }
//プロセス場合によって同じ時間 のために(int型 K = I、K <J、K ++ ) { IF(A [K] .TYPE == 0 ) { int型のP; のために(P = 1 ; P <= N-、P ++ ) { IF([K] .W == キー[P]) { キー[P] = 0 ; BREAK ; } } } } } のために(i = 1 ; iが<= N; iは++ ) { のprintf(" %dの" 、キー[I])。 } 戻り 0 。 }
参考:リンクは、作者に感謝します