#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;

string ans1;
int ans=0,ans2;

inline int read(){
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}

int main(){
     int n;
     n=read();
     string name[n+1];
     int qimo[n+1],Class[n+1];
     char worker[n+1],west[n+1];
     int art[n+1];
     int a[n+1];
     memset(a,0,sizeof(a));
     for(int i=1;i<=n;i++){
        cin>>name[i]>>qimo[i]>>Class[i]>>worker[i]>>west[i]>>art[i];
     }
     for(int i=1;i<=n;i++){
        if(qimo[i]>=80&&art[i]>=1){
            a[i]+=8000;
         }
        if(qimo[i]>85&&Class[i]>80){
            a[i]+=4000;
        }
        if(qimo[i]>90){
            a[i]+=2000;
        }
        if(qimo[i]>85&&west[i]=='Y'){
            a[i]+=1000;
        }
        if(Class[i]>80&&worker[i]=='Y'){
            a[i]+=850;
        }
        ans+=a[i];
     }
     for(int i=1;i<=n;i++){
        if(a[i]>=a[i+1]){
            ans1=name[i];
            ans2=a[i];
        }
        else
            if(a[i]<a[i+1]){
                ans1=name[i+1];
                ans2=a[i+1];
            }
     }
     cout<<ans1<<endl<<ans2<<endl<<ans;
     return 0;
}

2 条评论

  • @ 2016-02-25 22:22:07

    谢谢

  • @ 2016-02-25 03:32:37

    你的程序运行样例都运行不过去,这种时候不应该问别人**哪错了**,因为你完全可以自己找出来。

    1. 逐行调试立刻发现,读入n的部分格式处理错误,修改为cin >> n;
    2. 运行样例发现ans1输出是乱码,检查ans被name[i]和name[i+1]赋值的时候,i和i+1的取值情况,发现取了name[5],所以出了乱码,说明需要增加相关的边界限制。
  • 1

信息

ID
1001
难度
5
分类
模拟 点击显示
标签
递交数
39063
已通过
12711
通过率
33%
被复制
121
上传者