結果

問題 No.3221 Count Turns
コンテスト
ユーザー vjudge1
提出日時 2025-10-26 17:56:16
言語 C++17(clang)
(17.0.6 + boost 1.87.0)
結果
AC  
実行時間 76 ms / 2,000 ms
コード長 759 bytes
コンパイル時間 2,252 ms
コンパイル使用メモリ 171,868 KB
実行使用メモリ 8,088 KB
最終ジャッジ日時 2025-10-26 17:56:24
合計ジャッジ時間 5,308 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 36
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;
long long n,h,t;
int abab(int x){
	if(h%x==0)    return h/x;
	else return h/x+1;
}
struct noob{
	long long wz;
	long long num;
	long long sum;
	friend bool operator <(noob a,noob b){
		if(a.num!=b.num)return a.num>b.num;
		else if(a.sum!=b.sum) return a.sum<b.sum;
		else return a.wz>b.wz;
	}
}tmp;
priority_queue <noob> q;
long long c[100010];
long long b[100010];
int main(){
	cin>>n>>h>>t;
	long long a[100010];
	for(int i=1;i<=n;i++){
		tmp.wz=i;
		cin>>b[i];
		tmp.num=a[i]=abab(b[i]);
		tmp.sum=tmp.num*b[i]-h;
		q.push(tmp);
	}
	for(int i=1;i<=t;i++){
		tmp=q.top();
		q.pop();
		c[tmp.wz]++;
		tmp.num+=a[tmp.wz];
		q.push(tmp);
	} 
	for(int i=1;i<=n;i++){
		cout<<c[i]<<" ";
	}
	cout<<"\n";
	return 0;
}
 
0