```cpp
#include<bits/stdc++.h>
using namespace std;
int tong[609];
int main(){
int n,w;
cin>>n>>w;
for(int i=1;i<=n;i++){
int x;
cin>>x;
tong[x]++;
int num=0;
for(int p=600;p>=0;p--){
if(tong[p]!=0){
num+=tong[p];
if(num>=max(1,i*w/100)){
cout<<p<<" ";
break;
}
}
}
}
}
```
有两个问题,第一个就是`num`要定义在内层`for`循环外面,第二个就是输出完了之后可以直接`break`,不要`continue`
by lichengxi1111 @ 2024-09-19 22:49:06
不过我建议你去掉`if(tong[p]!=0)`这个判断,因为这样会让你的代码变复杂,加0就等同于没加,不用判断和用判断我肯定会选不用判断
by lichengxi1111 @ 2024-09-19 22:50:36
@[StarsTwinkle](/user/1267405)
by lichengxi1111 @ 2024-09-19 22:51:48
@[lichengxi1111](/user/934977) 谢谢
by StarsTwinkle @ 2024-09-19 22:53:19