1 solutions

  • 0
    @ 2024-12-19 11:03:21

    算法分析

    读入每个人的信息,然后按照题目要求计算所得的奖学金数目,维护一个最大奖学金获得者和奖学金数量。

    代码实现

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        string name;
        int money=0,total=0; //最多的奖金和总共的奖金
        for(int i=1;i<=n;i++)
        {
            string nm;
            char a,b;
            int x,y,z;
            cin>>nm>>x>>y>>a>>b>>z;
            int t=0;
            if(x>80&&z>=1) t+=8000;  //院士奖学金
            if(x>85&&y>80) t+=4000;  //五四奖学金
            if(x>90) t+=2000;        //成绩优秀奖
            if(x>85&&b=='Y') t+=1000;//西部奖学金
            if(y>80&&a=='Y') t+=850; //班级贡献奖
            if(t>money) //更新最多奖金的姓名和奖金数
            {
                money=t;
                name=nm;
            }
            total+=t;
        }
        cout<<name<<endl;
        cout<<money<<endl;
        cout<<total;
        return 0;
    }
    
    • 1

    Information

    ID
    77
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By