0
已解决
#include<iostream>
using namespace std;
int a[1001],b[30001];
int main(){
int t,n,s=0,x;
cin>>n>>x;
for(int i=1; i<=n; i++)
{
cin>>a[i];
b[a[i]]++;
}
for(int i=30000; i>=1; i--)
{
if(b[a[i]]!=0) s++;
if(s>n)
cout<<"NO RESULT";
else
cout<<a[x];
break;
}
return 0;
}
0
已采纳
0
0
思路 1555
那么要找到倒数第3名,我们就从0步开始看:
a[0]==0 没人走0步,pass
a[1]>0 有人走了1步 ,那么倒数第一名是1步
a[2]>0 有人走了2步 ,那么倒数第二名是2步
a[3]==0 没人走3步,pass
a[4]>0 有人走了4步 ,那么倒数第三名是4步 ,找到了!
0
1555输入:
cin>>n>>k;
for(i=1;i<=n;i++){
cin>>a[i];
b[a[i]]++;
if(maxx<a[i]){
maxx=a[i];
}
}
1555输出:
for(i=1;i<=maxx;i++){
if(b[i]>0){
c++;
if(c==k){
cout<<i;
break;
}
b[i]=0;
}
}
if(c<k){
cout<<"NO RESULT";
}
肯定AC 100分!!!
望采纳!!!!
0

