问题标题: 酷町堂:1555

0
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
已采纳
张岳恒
张岳恒
资深光能
资深光能

第二个循环从小到大遍历

a[i]!=0

x就--

x剪完了

输出i

定义一个标志位为1

退出循环

外面判断标志位是否为零

是就输出

NO RESULT
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
李明阳
李明阳
初级光能
初级光能

首先这题肯定要桶

  这题可以不用两个数组

直接这样输入:

    

 for(int i=1;i<=n;i++){
        cin>>t;
        a[t]++;
    }

输出:

for(int i=1;i<=30000;i++){
        if(a[i]!=0){
            k--;
        }
        if(k==0){
            f=1;
            cout<<i;
            break;
        }
    }

最后判断

如果f等于0

输出

"NO RESULT"

就可以了

注意还要定义m和t

望采纳

谢谢

我要回答