#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
struct Grade
...{
int nums;
int grade;
string times;
int index;
};
vector <Grade> g;
int cnt[6];
int n;
bool cmp1(Grade a, Grade b)
...{
if (a.nums==b.nums)
return a.times<b.times;
else
return a.nums>b.nums;
}
bool cmp2(Grade a, Grade b)
...{
return a.index<b.index;
}
void getGrade()
...{
int cnt2[6]=...{0};
for(int i=0;i<n;i++)
...{
if (g[i].nums==5)
g[i].grade=100;
else if (g[i].nums==0)
g[i].grade=50;
else
...{
int k=g[i].nums;
if (cnt2[k]<cnt[k])
...{
g[i].grade=55+k*10;
cnt2[k]++;
}
else
g[i].grade=50+k*10;
}
}
}
bool run()
...{
cin >> n;
if (n<0) return false;
g.resize(n);
int i;
for(i=0;i<6;i++) cnt[i]=0;
for(i=0;i<n;i++)
...{
cin>>g[i].nums >>g[i].times;
g[i].index=i;
cnt[g[i].nums]++;
}
sort(g.begin(),g.end(),cmp1);
for(i=0;i<6;i++) cnt[i]/=2;
getGrade();
sort(g.begin(),g.end(),cmp2);
for(i=0;i<n;i++) cout << g[i].grade << endl; 
cout<<endl;
return true;
}
int main() 
...{
while(run());
return 0;
}
本文介绍了一个C++程序,该程序能够读取学生的成绩和提交时间,然后根据特定规则为每个学生分配等级,并按指定顺序输出这些等级。程序使用了结构体、数组、条件判断和排序算法。
1093

被折叠的 条评论
为什么被折叠?



