题目描述

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

院士奖学金,每人$ 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\n%d\n%d",st[1].name,st[1].sum,ans);
return 0;
}

【排序+模拟】谁拿了最多奖学金 luogu-1051的更多相关文章

  1. tyvj——P1002 谁拿了最多奖学金

      P1002 谁拿了最多奖学金 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2005复赛提高组第一题 描述 某校的惯例是在每学期的期末考试之后发 ...

  2. NOIP2005 谁拿了最多奖学金

    1谁拿了最多奖学金 (scholar.pas/c/cpp) [问题描述] 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1)     院士奖学金,每人800 ...

  3. 洛谷题解 P1051 【谁拿了最多奖学金】

    其实很水 链接: P1051 [谁拿了最多奖学金] 注意: 看好信息,不要看漏或看错因为信息很密集 AC代码: 1 #include<bits/stdc++.h>//头文件 2 using ...

  4. [TYVJ] P1002 谁拿了最多奖学金

    谁拿了最多奖学金 背景 Background NOIP2005复赛提高组第一题   描述 Description 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同 ...

  5. vijos P1001 谁拿了最多奖学金

    vijos P1001 谁拿了最多奖学金 描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(&g ...

  6. P1002 谁拿了最多奖学金

    P1002 谁拿了最多奖学金 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2005复赛提高组第一题 描述 某校的惯例是在每学期的期末考试之后发放奖 ...

  7. 【洛谷p1051】谁拿了最多奖学金

    谁拿了最多奖学金[题目链接] 这道题早就想做它啦. 咱也不知道为啥,咱就是看这道题特别顺眼呢qwq: MY SOLUTION: 其实这道题很简单,开一个结构体记录各项信息,然后根据条件计算出这个人获得 ...

  8. Milking Cows 挤牛奶 USACO 排序 模拟

    1005: 1.2.1 Milking Cows 挤牛奶 时间限制: 1 Sec  内存限制: 128 MB提交: 15  解决: 9[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 1 ...

  9. TYVJ P1002 谁拿了最多奖学金 Label:模拟 水

    背景 NOIP2005复赛提高组第一题 描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同:1)     院士奖学金,每人8000元,期末平均成绩高于80分( ...

随机推荐

  1. 【NX二次开发】获取用户输入的字符串uc1603

    效果: 源码: extern DllExport void ufsta(char *param, int *returnCode, int rlen) { UF_initialize(); strin ...

  2. ES6中的新数据类型——Symbol

    今天小编和大家来聊一聊es6中新增的一个原始数据类型Symbol.在es5中原始数据类型(基本数据类型)有以下六种:Undefind.Null.Bool. String.Number.Object.今 ...

  3. 基于ABP落地领域驱动设计-00.目录和小结

    <实现领域驱动设计> -- 基于 ABP Framework 实现领域驱动设计实用指南 翻译缘由 自 ABP vNext 1.0 开始学习和使用该框架,被其优雅的设计和实现吸引,适逢 AB ...

  4. MetingJS 是如何配合 Aplayer 加载歌单的?

    Meting.js 介绍 Meting.js 依赖 APlayer.js,扩展了 APlayer.js 的功能,能够使 APlayer.js 加载网易云音乐.QQ 音乐.虾米音乐中的歌单. 安装 &l ...

  5. 【春节歌曲回味 | STM32小音乐盒 】PWM+定时器驱动无源蜂鸣器(STM32 HAL库)

    l  STM32通过PWM与定时器方式控制无源蜂鸣器鸣响 l  STM32小音乐盒,歌曲进度条图形显示与百分比显示,歌曲切换 l  编程使用STM32 HAL库 l  IIC OLED界面编程,动画实 ...

  6. Linux运维网络基础

    1.网络架构的三个层次 核心层: 路由器(网关接口) 实现和外网通讯 冗余能力(主备) 汇聚层: 交换机(三层交换机) 冗余能力 策略控制能力 接入层: 交换机(二层交换机) 终端设备接入网络 2.网 ...

  7. 17 DOS攻击防范

    #!/bin/bash source /etc/profile HOST_IP="172.16.1.122" DROP_IP_FILE="/tmp/drop_ip.log ...

  8. 9.5、zabbix高级操作(2)

    4.zabbix的分布式监控: 使用zabbix-proxy主动方式(被动也可),使用zabbix-agent的主动方式(被动也可): Zabbix Server <- Zabbix Proxy ...

  9. Devexpress-WPF初体验

    最近使用wpf devexpress做一个wpf小项目,中间遇到了一些问题,这里记录下,同时也跟大家分享分享 1.devexpress安装 devexpress提供了很多控件,特别是各种形式的数据列表 ...

  10. SpringCloud微服务(基于Eureka+Feign+Hystrix+Zuul)

    一.搭建注册中心 1.1.创建一个cloud-service项目 1.2:POM文件依赖 1 <?xml version="1.0" encoding="UTF-8 ...