问题标题: 高考成绩

1
2
已解决
王欣怡
王欣怡
新手光能
新手光能

题目描述

2018年全国参加高考人数达975万,高考总分750分。现给出某个范围(小组,班级,学校,区,市,省等)参考高考的人数n,以及每一个人的高考成绩,请统计输出哪个分数的人最多。

 

程序输入说明

2行,第一行一个正整数n,表示参加高考人数;第二行为高考成绩。

程序输出说明

2行,第一行一个正整数,为最多的人得到的分数;第二行一个正整数,为得到这个分数的人数。如果两个分数的人数一样,输出分数较大的那个。

程序输入样例

5
695 680 702 630 695

程序输出样例

695
2

数据范围及提示

1<=n<=1000000,0<每个分数都是正整数<=750。

题目网址

帮帮我!

#include<iostream>
#include<cmath>
using namespace std;
long long n,c[1000001],a[1000001],maxn,a1;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        c[a[i]]++;
    }
    for(int i=1;i<=n;i++)
    {
        if(c[a[i]]>=maxn)
        {
            if(c[a[i]]==maxn)
            {
                maxn=max(c[a[i]],maxn);
                a1=max(a[i],a1);
            }
            else
            {
                maxn=c[a[i]];
                a1=a[i];    
            }

        }
    }
    cout<<a1<<endl<<maxn;
    return 0;
}
这是我的程序

总是超时:

--》

运行超时
++++++++++
第1个测试点通过
第2个测试点通过
第3个测试点通过
第4个测试点通过
第5个测试点通过
第6个测试点通过
第7个测试点通过
第8个测试点通过
第9个测试点通过
第10个测试点通过

谁能教教?发整段也没关系,我不举报!


0
0
王梓皓
王梓皓
高级守护
高级守护

将c[1000001],变成吃c[760]试一试。

 

 

采纳的人最帅!!!

0
0
0
0
0
0
0
我要回答