隐居归来
2025-10-06 22:41:44
发布于:广东
18阅读
0回复
0点赞
本人:(计数排序)
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10;
int n,w;
int p[N];
int s[610];
bool cmp(int x,int y){
return x > y;
}
int main(){
cin >> n >> w;
for(int i = 1;i <= n;i++){
cin >> p[i];
s[p[i]]++;
int pass = max(1,(int)floor(i * w / 100));
for(int j = 600;j >= 0;j--){
if(s[j] != 0) pass -= s[j];
if(pass <= 0) {
cout << j << " ";
break;
}
}
}
return 0;
}
deepseek:
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10;
int n,w;
int p[N];
int s[610];
int main(){
cin >> n >> w;
for(int i = 1;i <= n;i++){
cin >> p[i];
s[p[i]]++;
int pass = max(1, i * w / 100); // 可以去掉floor,整数除法会自动向下取整
int sum = 0;
for(int j = 600;j >= 0;j--){
if(s[j] != 0) {
sum += s[j];
if(sum >= pass) {
cout << j << " ";
break;
}
}
}
}
return 0;
}
这里空空如也





有帮助,赞一个