谁拿了最多奖学金——NOIP 2005 提高组

news2025/7/19 9:00:45

 输入样例:

4
YaoLin 87 82 Y N 0
ChenRuiyi 88 78 N Y 1
LiXin 92 88 N N 0
ZhangQin 83 87 Y N 1

输出样例:

ChenRuiyi
9000
28700

   

这道题用结构体做对吧

#include <bits/stdc++.h>
using namespace std;
class student{
    public:
        string name;
        int FG_average,  CReview_results;
        char SCadre, Swest;
        int paper, num;
        int money = 0;
};
class __Final__ : public student{ // 如果不知道可以关注博客在“类与结构体6”详细讲了关于继承的知识点
    public:
        void getstudent(string Tname,int TFG_average,int TCReview_results,char TSCadre,char TSwest,int Tpaper, int Tnum){
            name=Tname,FG_average=TFG_average,CReview_results=TCReview_results,SCadre=TSCadre,Swest=TSwest,paper=Tpaper,num=Tnum;
        }
        void getLevel1(__Final__ &Student){
            if(Student.FG_average > 80 && Student.paper >= 1) Student.money += 8000;
        }
        void getLevel2(__Final__ &Student){
            if(Student.FG_average > 85 && Student.CReview_results > 80) Student.money += 4000;
        }
        void getLevel3(__Final__ &Student){
            if(Student.FG_average > 90) Student.money += 2000;
        }
        void getLevel4(__Final__ &Student){
            if(Student.Swest == 'Y' && Student.FG_average > 85) Student.money += 1000;
        }
        void getLevel5(__Final__ &Student){
            if(Student.SCadre == 'Y' && Student.CReview_results > 80) Student.money += 850;
        }
        void get_money(__Final__ &Student){
            getLevel1(Student);
            getLevel2(Student);
            getLevel3(Student);
            getLevel4(Student);
            getLevel5(Student);
        }
        int getMoney(__Final__ &Student) {
            return Student.money;
        } 
        string getName(__Final__ &Student){
            return Student.name;
        }
        bool operator< (const __Final__ &Student)const{
            if(Student.money != money) return Student.money > money;
            else return Student.num < num;
        }
        friend void CPU(); // 如果不知道可以在类与结构体中找一下,有关于友元函数的详细解释
};
void CPU(){
	int n;
    cin >> n;
    vector<__Final__> Student(n);
    for(int i = 0; i < n; i++){
        string Tname;
        int TFG_average,TCReview_results;
        char TSCadre,TSwest;
        int Tpaper,Tnum = i + 1;
        cin >> Tname >> TFG_average >> TCReview_results >> TSCadre >> TSwest >> Tpaper;
        Student[i].getstudent(Tname,TFG_average,TCReview_results,TSCadre,TSwest,Tpaper,Tnum);
        Student[i].get_money(Student[i]);
    }
    sort(Student.begin(),Student.end());
    cout<<Student[n-1].getName(Student[n-1])<<'\n'<<Student[n-1].getMoney(Student[n-1])<<'\n';
    long long ans = 0;
    for(int i = 0; i < n; i++){
        ans += (long long)Student[i].getMoney(Student[i]);
    }
    cout<<ans;
}
int main(){
    CPU();
    return 0;
}

如果觉得这个版本太难了,就看一下下面这个↓

#include <bits/stdc++.h>
using namespace std;
class student{
    private:
        string name;
        int FG_average,  CReview_results;
        char SCadre, Swest;
        int paper, num;
        int money = 0;
    public:
        void getstudent(string Tname,int TFG_average,int TCReview_results,char TSCadre,char TSwest,int Tpaper, int Tnum){
            name=Tname,FG_average=TFG_average,CReview_results=TCReview_results,SCadre=TSCadre,Swest=TSwest,paper=Tpaper,num=Tnum;
        }
        void getLevel1(student &Student){
            if(Student.FG_average > 80 && Student.paper >= 1) Student.money += 8000;
        }
        void getLevel2(student &Student){
            if(Student.FG_average > 85 && Student.CReview_results > 80) Student.money += 4000;
        }
        void getLevel3(student &Student){
            if(Student.FG_average > 90) Student.money += 2000;
        }
        void getLevel4(student &Student){
            if(Student.Swest == 'Y' && Student.FG_average > 85) Student.money += 1000;
        }
        void getLevel5(student &Student){
            if(Student.SCadre == 'Y' && Student.CReview_results > 80) Student.money += 850;
        }
        void get_money(student &Student){
            getLevel1(Student);
            getLevel2(Student);
            getLevel3(Student);
            getLevel4(Student);
            getLevel5(Student);
        }
        int getMoney(student &Student) {
            return Student.money;
        } 
        string getName(student &Student){
            return Student.name;
        }
        bool operator< (const student &Student)const{
            if(Student.money != money) return Student.money > money;
            else return Student.num < num;
        }
};
int main(){
    int n;
    cin >> n;
    vector<student> Student(n);
    for(int i = 0; i < n; i++){
        string Tname;int TFG_average,TCReview_results;char TSCadre,TSwest;int Tpaper,Tnum = i + 1;
        cin >> Tname >> TFG_average >> TCReview_results >> TSCadre >> TSwest >> Tpaper;
        Student[i].getstudent(Tname,TFG_average,TCReview_results,TSCadre,TSwest,Tpaper,Tnum);
        Student[i].get_money(Student[i]);
    }
    sort(Student.begin(),Student.end());
    cout<<Student[n-1].getName(Student[n-1])<<'\n'<<Student[n-1].getMoney(Student[n-1])<<'\n';
    long long ans = 0;
    for(int i = 0; i < n; i++){
        ans += (long long)Student[i].getMoney(Student[i]);
    }
    cout<<ans;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1451125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序框架阐述

目录 一、框架 响应的数据绑定 页面管理 基础组件 丰富的 API 二、逻辑层 App Service 小程序的生命周期 注册页面 使用 Page 构造器注册页面 在页面中使用 behaviors 使用 Component 构造器构造页面 页面的生命周期 页面路由 页面栈 路由方式 注意事项 模块化…

Java的异常体系

一、体系简介 java中的Exception类的子类不仅仅只是像上图所示只包含IOException和RuntimeException这两大类&#xff0c;事实上Exception的子类很多很多&#xff0c;主要可概括为&#xff1a;运行时异常与非运行时异常。 在上述体系中&#xff0c;Error表示严重的系统错误&am…

C++面向对象程序设计-北京大学-郭炜【课程笔记(二)】

C面向对象程序设计-北京大学-郭炜【课程笔记&#xff08;二&#xff09;】 1、结构化程序设计结构化程序设计的不足 2、面向对象的程序设计2.1、面向对象的程序设计2.2、从客观事物抽象出类2.3、对象的内存分配2.4、对象之间的运算2.5、使用类的成员变量和成员函数用法1&#x…

optee UTA加载

流程 动态TA按照存储位置的不同分为REE filesystem TA&#xff1a;存放在REE侧文件系统里的TA&#xff1b; Early TA&#xff1a;被嵌入到optee os里的在supplicant启动之前就可用了。 这里我们讲的是常规的存放在REE侧文件系统里的TA。 通过GP标准调用的与TA通信的命令(opens…

C语言学习day14:数组定义和使用

定义变量&#xff1a; 数据类型 变量 值 数组定义&#xff1a; 数据类型 数组名[元素个数]{值1,值2,值3} 代码&#xff1a; int main() {//定义变量//数据类型 变量 值//数组定义//数据类型 数组名[元素个数]{值1,值2,值3}//数组下标 数组名[小标]//数组下标是…

Java学习第十五节之回顾方法的调用

方法的调用 package oop;public class Demo03 {public static void main(String[] args) {//实际参数和形式参数的类型要对应&#xff01;int add Demo03.add(1,2);System.out.println(add);}public static int add(int a,int b){return ab;}}package oop;//值传递 public cl…

列表推导式与生成表达式的区别

列表推导式与生成式表达式的区别&#xff1a; 列表推导式 res[i for i in range(6)] print(res) 结果&#xff1a; [0, 1, 2, 3, 4, 5] 生成表达式&#xff1a; res(i for i in range(6)) print(res) 结果&#xff1a; <generator object <genexpr> at 0x0000013EAD0…

mathtype公式

Mathtype 手写板 Win11手写板按钮灰色问题解决&#xff1a;在C:\Program Files\Common Files\microsoft shared\ink目录下粘贴mip.exe&#xff0c;C:\Program Files\Common Files\microsoft shared\ink\en-US目录下添加mip.exe.mui提取码y04v 公式识别 配合免费图片公式识别…

【MySQL】:DQL查询

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; MySQL从入门到进阶 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一. DQL1.1 基本语法1.2 基础查询1.3 条件查询1.3 聚合函数 &#x1f324;️ 全篇…

IO流---字节输入输出流,字符输入输出流

IO流概述 IO流&#xff0c;即输入输出流&#xff08;Input Output Stream&#xff09;&#xff0c;是一种抽象概念&#xff0c;用来处理设备之间的数据传输问题&#xff0c;例如文件复制、文件上传、文件下载等。在Java中&#xff0c;对数据的操作通常是通过流的方式进行的&…

qml中解决Page控件头部元素Margin不生效的问题

0、想要的效果 1、问题描述 经测试&#xff1a;Page的头部无法完美的进行左右边距设置&#xff0c;leftMargin可以&#xff0c;rightMargin不可以。。。。 Page {// ...header: Frame {id: headerheight: 70// 必须首先锚定位&#xff0c;然后设置边距才生效padding: 0anchor…

轻松掌握Jenkins执行远程window的Jmeter接口脚本

Windows环境&#xff1a;10.1.2.78 新建与配置节点 【系统管理】—【管理节点】—【新建节点】输入节点名称&#xff0c;勾选“dumb slave”&#xff0c;点击ok 按如上配置&#xff1a; 说明&#xff1a; Name&#xff1a;定义slave的唯一名称标识&#xff0c;可以是任意字…

【动态规划】【记忆化搜索】【状态压缩】1681. 最小不兼容性

作者推荐 【数位dp】【动态规划】【状态压缩】【推荐】1012. 至少有 1 位重复的数字 本文涉及知识点 动态规划汇总 状态压缩 记忆化搜索 1681. 最小不兼容性 给你一个整数数组 nums​​​ 和一个整数 k 。你需要将这个数组划分到 k 个相同大小的子集中&#xff0c;使得同一…

函数式编程的技巧

14.1.2 科里化 给出科里化的理论定义之前&#xff0c;让我们先来看一个例子。应用程序通常都会有国际化的需求将一套单位转换到另一套单位是经常碰到的问题。 单位转换通常都会涉及转换因子以及基线调整因子的问题。比如&#xff0c;将摄氏度转换到华氏度的公式是CtoF(x)x*9/…

(2024|ICLR,SVD,软加权正则化,推理时文本嵌入优化)文本到图像扩散模型的图像内容抑制

Get What You Want, Not What You Dont- Image Content Suppression for Text-to-Image Diffusion Models 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 2. 相关工作 3. 方…

IIC--集成电路总线

目录 一、IIC基础知识 1、设计IIC电路的原因&#xff1a; 2、上拉电阻阻值怎么确定 3、IIC分类 4、IIC协议 二、单片机使用IIC读写数据 1、 IIC发送一个字节数据&#xff1a; 2、IIC读取一个字节数据&#xff1a; 一、IIC基础知识 1、设计IIC电路的原因&#xff1a; (…

【JavaEE】_Fiddler抓包HTTP请求与响应

目录 1. Fiddler简介 2. Fiddler安装步骤 3. 抓包结果举例&#xff08;sogou.com&#xff09; 1. Fiddler简介 1. 要查看HTTP的请求和响应&#xff0c;需要使用抓包工具进行抓包&#xff1b; 抓包即获取网卡上经过的数据并显示出来&#xff0c;常用的抓包工具有wireshark和…

Linux第57步_“linux系统镜像”和“根文件系统”重新打包小结

实时总结是很重要的&#xff0c;时间久了&#xff0c;可能会遗忘。下面是“linux系统镜像”和“根文件系统”重新打包小结。 1、linux系统镜像重新打包 在第1次完成linux系统镜像打包后&#xff0c;再重新打包就很容易了 将“bootfs”重新打包 准备打包文件: 输入“cd /ho…

专业140+总分400+华中科技大学824信号与系统考研经验华科华中大电子信息与通信工程,真题,大纲,参考书。

今年考研落下帷幕&#xff0c;看到有人落寞&#xff0c;有人金榜题名&#xff0c;心里体会五谷杂陈&#xff0c;自己很幸运通过努力上岸华科&#xff0c;初试专业课824信号与系统140&#xff0c;数一130&#xff0c;总分400&#xff0c;对于这个成绩稍微有点超出自己预期&#…

python-产品篇-游戏-象棋

文章目录 代码效果 代码 import pygame import time import constants from button import Button import pieces import computerclass MainGame():window NoneStart_X constants.Start_XStart_Y constants.Start_YLine_Span constants.Line_SpanMax_X Start_X 8 * Lin…