• 【排序+模拟】谁拿了最多奖学金 luogu-1051


    题目描述

    某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:

    院士奖学金,每人$ 8000 $元,期末平均成绩高于(80)分((>80)),并且在本学期内发表(1)篇或(1)篇以上论文的学生均可获得;
    五四奖学金,每人(4000)元,期末平均成绩高于(85)分((>85)),并且班级评议成绩高于(80)分((>80))的学生均可获得;
    成绩优秀奖,每人(2000)元,期末平均成绩高于(90)分((>90))的学生均可获得;
    西部奖学金,每人(1000)元,期末平均成绩高于8585分((>85))的西部省份学生均可获得;
    班级贡献奖,每人(850)元,班级评议成绩高于8080分((>80))的学生干部均可获得;
    只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚林的期末平均成绩是(87)分,班级评议成绩(82)分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是(4850)元。

    现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。

    分析

    废话不多说,直接上代码

    AC代码

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn=300+5;
    struct rec{
        char name[40];
        int sum,id;
    }st[maxn];
    int n;
    inline int read(){
        int w=0,X=0; char ch=0;
        while (!isdigit(ch)){w|=ch=='-';ch=getchar();}
        while (isdigit(ch)){X=(X<<1)+(X<<3)+(ch^48);ch=getchar();}
        return w?-X:X;
    }
    bool cmp(rec a,rec b){
        if (a.sum==b.sum) return a.id<b.id;
        else return a.sum>b.sum;
    }
    int main(){
        n=read();
        int ans=0;
        for (int i=1;i<=n;i++) {
            st[i].sum=0;
            scanf("%s",st[i].name); st[i].id=i;
            int x=read(),y=read(); char ch,ch2; cin>>ch>>ch2; int z=read();
            if (x>80&&z>=1) st[i].sum+=8000;
            if (x>85&&y>80) st[i].sum+=4000;
            if (x>90) st[i].sum+=2000;
            if (x>85&&ch2=='Y') st[i].sum+=1000;
            if (y>80&&ch=='Y') st[i].sum+=850;
            ans+=st[i].sum;
        }
        sort(st+1,st+1+n,cmp);
        printf("%s
    %d
    %d",st[1].name,st[1].sum,ans);
        return 0;
    }
    
    黎明的朝阳,会为苦难中最坚强的信念升起
  • 相关阅读:
    深入理解JVM
    Axure RP 7.0 注册码
    jquery 单击和双击事件冲突解决方案
    8张图理解Java
    java集合运算:求交集,并集,集合差
    Java高级软件工程师面试题
    初学者手册-IDEA常用快捷键
    Java开发进阶技能(附文章引用链接)
    项目启动时报错Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
    org/apache/hadoop/hbase/mapreduce/TableReducer:Unsupported major.minor version52.0
  • 原文地址:https://www.cnblogs.com/Dawn-Star/p/9646337.html
Copyright © 2020-2023  润新知