其他分享
首页 > 其他分享> > 2021-02-10

2021-02-10

作者:互联网

poj1581

题目思路较为简单,需要注意的是对于时间总和的判断计算。
可是为什么vjudge它编不来呢。。。
如果我的代码有问题欢迎评论指导。

#include <iostream>
#include <string>

using namespace std;
using std :: string;

struct s{
    string teamname;
    int a[4] = {0},b[4] = {0},addtime = 0,addsub = 0;
};

int main()
{
    int n;
    cin>>n;
    s str[n];
    for(int i = 0;i != n;i++){
        cin>>str[i].teamname;
        for(int j = 0;j != 4;j++){
            cin>>str[i].a[j]>>str[i].b[j];
            if(str[i].a[j] != 0)
                ++str[i].addsub;
            if(str[i].a[j] == 0);
            else if(str[i].a[j] != 1)
                str[i].addtime += (str[i].b[j] + (str[i].a[j] - 1) * 20);
            else
                str[i].addtime += str[i].b[j];
        }
    }
    int maxi = 0, maxt = 0;
    for(int i = 0;i != n;i++){
        if(str[i].addsub > maxt){
            maxt = str[i].addsub;
            maxi = i;
        }
        else if(str[i].addsub == maxt){
            if(str[i].addtime < str[maxi].addtime)
                maxi = i;
            else;
        }
    }
    cout<<str[maxi].teamname<<" "<<str[maxi].addsub<<" "<<str[maxi].addtime<<endl;
    return 0;
}

标签:02,10,int,addtime,maxt,maxi,2021,str,addsub
来源: https://blog.csdn.net/abyness/article/details/113786965