2020直播獲獎_CSP(題解)

Joker_hehe發表於2021-01-01

題目在這
此題需要用桶排做‘
你問我桶排是什麼?
額…

桶排序就是…

比方說你要排序的數在100~110
,之間,那麼你就需要準備100~
110個桶用來儲存,就可以了。

程式碼如下

#include<iostream>
#include<cstdio>
using namespace std;
int t[605];//分數要求在600分以內,定義個這個就可以了
int n,w;
int main(){
//	freopen("live.in","r",stdin);
//	freopen("live.out","w",stdout);
	int x;
	cin>>n>>w;
	for(int i=1;i<=n;i++){
		cin>>x;
		t[x]++;
		int sum=0;
		for(int j=600;j>=0;j--){
			sum+=t[j];
			if(sum>=max(1,i*w/100)){
				cout<<j<<' ';
				break;
			}
		}
	}
	return 0;
}

相關文章