本题可以作为熟悉结构体使用的基础题,没有太多思维上的挑战。
代码如下:
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
struct contest{
char name[10];
int time[4];
int sub[4];
int solve;
int pen;
}con[n];
int i,j;
for(i=0;i<=3;i++){
con[i].solve=0;
con[i].pen=0;
cin>>con[i].name;
for(j=0;j<=3;j++){
cin>>con[i].sub[j];
cin>>con[i].time[j];
if(con[i].time[j]!=0){
con[i].pen=con[i].pen+con[i].time[j]+20*(con[i].sub[j]-1);
con[i].solve++;
}
}
}
for(i=0;i<=2;i++){
if(con[i].solve>con[i+1].solve) con[i+1]=con[i];
else if(con[i].solve==con[i+1].solve){
if(con[i].pen<con[i+1].pen) con[i+1]=con[i];
}
}
cout<<con[3].name<<' '<<con[3].solve<<' '<<con[3].pen;
return 0;
}