リンク:https://ac.nowcoder.com/acm/contest/1069/B
出典:牛オフネットワーク
タイトル説明
農業の無限の苦労によって疲労し、ファーマージョンは新しいiCowとMP3プレーヤー市場での彼の手を試してみることにしました。
これは、Nの曲(1 <= N <= 1,000)、「シャッフル」の順番で曲を果たしていることをNを通じて1をインデックス化格納MP3プレーヤーです
ファーマージョンの自身のアルゴリズムによって決定されます。
※各曲は私が最初の評価はRI(1 <= Riを<= 10,000)があります。
*再生する次の曲は、常に最高の定格の1つ(または、二つ以上が結ばれている場合、最低のインデックスを持つ最高の定格曲が選択されている)です。
*演奏された後、曲の評価はゼロに設定され、その評価ポイントは、他のN-1の歌に均等に分散されています。
評価ポイントは(すなわち、それらはN-1で割り切れません)均等に分配することができない場合は*、その後、余分なポイントは、リストの最初の曲(すなわち、R1、R2などに一度に一つのアウトparceledています - - ではなく演奏曲)は、より多くの余分なポイントが残っていないまで。
このプロセスは、次の曲が再生された後、新たな評価で繰り返されます。iCowにより再生される最初のT楽曲(1 <= T <= 1000)を決定します。
説明を入力します。
* 1行目:二スペースで区切られた整数:NとT
*行2..N + 1:Riを:ラインI + 1は、単一の整数が含まれています
出力説明:
*行1..T:ライン私はiCowを果たしているi番目の曲である単一の整数が含まれています。
エントリー
3 4 10 8 11
輸出
3 1 2 3
説明
iCowは評価それぞれ10、8、11、で、3曲が含まれています。あなたは、最初の4曲が再生されるように決定する必要があります。
各曲が再生する前に評価:
R1 R2 R3
10 8 11 - >、#3 11/2 = 5を再生残り= 1
16 13 0 - >#1 16/2 = 8プレイ
>#2 21を果たし- 0 21 8 / 2 = 10、残り= 1
11 0 18 - >#3を再生...
レジャーキューを使用し始めて、より多くのトラブルを書くの結果は、最終的に混沌とした、WAを書いただけでなく、直接暴力を行う可能性があります
1つの#include <アルゴリズム> 2の#include <iostreamの> 3の#include <cstdlib> 4の#include <CStringの> 5の#include <sstream提供> 6の#include <cstdioを> 7の#include <ベクトル> 8の#include < ストリング > 9#含む<cmath> 10の#include <キュー> 11の#include <スタック> 12の#include <地図> 13の#include < 設定 > 14の#include <math.h>の 15 16 の#define INF 0x3f3f3f3f 17 の#define MAXN 1005 18 のconst int型 MOD = 1E9 + 7 。 19 20 使って 名前空間STDを、 21 22 のint D [MAXN]。 23 24 のint main()の 25 { 26 INT N、K。 27 CIN >> N >> K。 28 29 のために(int型 i = 1 ; iが= Nを<; Iは++ ) 30 のscanf(" %dの"、&D [I])。 31 32 ながら(K-- ){ 33 、INTMAXX = - 1 。 34 のintフラグ= 0 。 35 のためには、(int型 i = 1 ; iが<= Nを; iは++ ) 36 であれば(D [i]が> MAXX) 37 MAXX = D [i]は、フラグ= I。 38 のprintf(" %d個の\ n " 、フラグ)。 39 INTの TEMP = D [フラグ] /(N - 1 )。 40が あれば(TEMP){ 41 のために(int型 I = 1 ; = iが<Nを; iは++ ){ 42 もし(I =!フラグ) 43 のD [I] + = TEMP。 44 } 45 } 46 TEMP = D [フラグ]%(N - 1 )。 47 D [フラグ] = 0 ; 48 であれば(TEMP){ 49 のためには、(int型 i = 1 ; iが温度を<= N &&; iが++ ){ 50 場合(I =!フラグ) 51 D [i]を++、temp-- 。 52 } 53 } 54 } 55 56 リターン 0 ; 57 }