問題の説明
あり
nは
ゲームをプレイ番目の円の子供、1からの子ども
のn
数の第2号子供に時計回りに座って1人の子供、子供たちは時計回りの数に座って3人の子供2、......、第1の子供私は座って
n個の
子の数の時計回りの方向を。
それぞれの子の数に続いてゲームを開始し、報告された子の第1の数から時計回りには、1によって報告された子供の数を報告しています。子供用のパケットの数ならば k個の 数または最後の倍数(すなわち、ビット数)である K 、次に子供が解消され、後続のパケットの数はもはや参加しません。ときにゲームが唯一の子供、子供が勝ち。
例えば、N = 5、K = 2:
子供の1個は、1報告、
子供パケット2うちの2数、
3つの子供パケット3を有する
4アウトを有する4人の子供パケット、
5を有する5つの子供のパケットを、
1第6号は、外子の数を報告した;
3、子供の数が7を報告し、
8のうちランク5は、子供の数と報告し
3号子供が勝ちます。
与えられた N と K 、最後の数はどのくらいです勝つために子供を頼みますか?
それぞれの子の数に続いてゲームを開始し、報告された子の第1の数から時計回りには、1によって報告された子供の数を報告しています。子供用のパケットの数ならば k個の 数または最後の倍数(すなわち、ビット数)である K 、次に子供が解消され、後続のパケットの数はもはや参加しません。ときにゲームが唯一の子供、子供が勝ち。
例えば、N = 5、K = 2:
子供の1個は、1報告、
子供パケット2うちの2数、
3つの子供パケット3を有する
4アウトを有する4人の子供パケット、
5を有する5つの子供のパケットを、
1第6号は、外子の数を報告した;
3、子供の数が7を報告し、
8のうちランク5は、子供の数と報告し
3号子供が勝ちます。
与えられた N と K 、最後の数はどのくらいです勝つために子供を頼みますか?
入力形式
2つの整数を含む入力ライン、
N
及び
K
被験者を意味します。
出力フォーマット
子どもの当選番号を表す整数を含む出力1行。
サンプル入力
5 2
サンプル出力
3
サンプル入力
7 3
サンプル出力
4
スケールデータと規則
評価のためのすべてのユースケース,. 1≤
N-
≤1000,1≤
K
≤。9。
1の#include <iostreamの> 2の#include <ベクトル> 3 使用して 名前空間STDを、 4 INT メイン(){ 5 int型N、K。 6 CIN >> N >> K。 7 ベクター< INT > pre_queue。 8 のためには、(int型 i = 1 ; iが<= N; iが++ ){ 9 pre_queue.push_back(I)。 10 } 11 INTの順序= 0 。 12 int型 TOT = N。 13 もし(K ==1 ){ 14 COUT << N。 15 リターン 0 ; 16 } 17 ながら(TOT> 1 ){ 18 のための(自動&I:pre_queue){ 19 であれば(!I = - 1 ) 20 順++ 。 21 他 22 続けます。 23 であれば(順%kは== 0 ||注文%10 == K){ 24 iは= - 1 。 25 tot-- ; 26 27 } 28 } 29 } 30 のための(int型 I = 0 ; iがpre_queue.sizeを()<; Iは++ ){ 31 // COUT << pre_queue [I] << ENDL。 32 であれば(pre_queue [I] =! - 1 ){ 33 COUT << pre_queue [I]。 34 ブレーク; 35 } 36 } 37 リターン 0 。 38 }
最後の値で見納めになるまで、-1に設定されていない場合ではない-1、k個の== 1は、別途議論している場合