题目
题目链接
题解五个数组分别记录五个阶段的成绩,数组模拟vector,在记录的同时更新最大人数。 输入结束,记录也结束;判断哪个阶段的人数等于记录的最大人数,就对哪个阶段的成绩进行排序。 因为是升序,所以手写个cmp函数。
我甜蜜的看错数据规模了,卡了巨久。
代码// 太优美了!
#include
using namespace std;
const int N = 1010;
int n, g, mx, cntA, cntB, cntC, cntD, cntE;
int gA[N], gB[N], gC[N], gD[N], gE[N];
bool cmp(int x, int y) { return x>y; }
int main()
{
cin>>n;
for(int i = 1;i >g;
if(g>=90) gA[++cntA] = g, mx = max(mx, cntA);
else if(g>=80) gB[++cntB] = g, mx = max(mx, cntB);
else if(g>=70) gC[++cntC] = g, mx = max(mx, cntC);
else if(g>=60) gD[++cntD] = g, mx = max(mx, cntD);
else gE[++cntE] = g, mx = max(mx, cntE);
}
printf("%d %d %d %d %d\n%d\n", cntA, cntB, cntC, cntD, cntE, mx);
if(cntA == mx) { sort(gA+1, gA+mx+1, cmp); for(int i = 1;i
关注
打赏