问题标题: 酷町堂:1708 帮忙纠纠错

0
0
已解决
周俊豪
周俊豪
高级光能
高级光能

#include<iostream>
using namespace std;
int m,n,a[100],t,mx,s;
int main(){
    cin>>m>>n;
    for(int i=1;i<=m;i++){
        cin>>t;
        a[t]++;
    }
    for(int i=1;i<=100;i++){
        while(a[i]>0){
            if(i>mx){
                mx=i;
                s++;
            }
        }
        if(s==n){
            cout<<mx;
            break;
        }
    }
    return 0;

运行超时,不知道哪里错了,请各位大佬纠纠错!

题目链接:http://judge2.codingtang.com/problem/1708/


0
已采纳
郑怡翔
郑怡翔
初级天翼
初级天翼

你可能想复杂了

这道题就是找第k大的数

for(int i=1;i<n;i++)//选择排序
        for(int j=i+1;j<=n;j++)
            if(a[i]<a[j])
                swap(a[i],a[j]);
    cout<<a[k];//输出第K大的数

前面的输入我就不讲了

0
我要回答