题目描述
算法1
就是用桶装一下(像桶排序一样),然后暴力,$O(600N)$
时间复杂度 $O(N)$
C++ 代码
hhh有效代码就在Main()里,IN()是快读。
#include<bits/stdc++.h>
using namespace std;
#define For(i,x,y) for(int i = x;i<y;i++)
#define x first
#define y second
#define pb push_back
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
inline int IN(){
register int s = 0,w = 1;
register char c = getchar();
while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}
while(c>='0'&&c<='9'){s=s*10+c-'0';c=getchar();}
return s*w;
}
const int N = 1010;
int a[N];
void Main(){
int n = IN(),w = IN();
For(i,1,n+1){
a[IN()]++;
int c = max(1,i*w/100);
int id = 601;
while(c>0){
id--;
c-=a[id];
}
printf("%d ",id);
}
}
int main(){
Main();
return 0;
}