最开始,我用最最最简单的方法做 85
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
int c[a+5];
for(int i=1;i<=a;i++)
{
for(int j=i-1;j>0;j--)
c[j+1]=c[j];
cin>>c[1];
for(int k=1;k<i;k++)
{
if(c[k]<c[k+1])
swap(c[k],c[k+1]);
else
break;
}
cout<<c[max(i*b/100,1)]<<' ';
}
}
后来,我用multiset做 85
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
int d;
multiset<int> c;
for(int i=1;i<=a;i++)
{
cin>>d;
c.insert(d);
d=0;
int e=max(b*i/100,1);
for(std::set<int>::iterator j=c.begin();j!=c.end();j++)
{
if(d++==c.size()-e)
{
cout<<*j<<' ';
break;
}
}
}
}
最后的最后,我用计数排序做,可又是……85
#include<bits/stdc++.h>
using namespace std;
int n[999],c[100005],d,m;
int main()
{
int a,b;
cin>>a>>b;
memset(n,0,sizeof(n));
for(int i=1;i<=a;i++)
{
cin>>d;
n[d]++;
m=0;
for(int j=999;j>=0;j--)
{
for(int k=0;k<n[j];k++)
c[++m]=j;
}
cout<<c[max(i*b/100,1)]<<' ';
}
}
请各位大佬帮帮蒟蒻吧
蒟蒻会给帮蒟蒻的大佬一个关注
绝对说到做到