P1051 谁拿了最多奖学金

我本来不想写这种东西的....但是....

这一题是一个人多个数据...结构体...自己写cmp...判定判定判定判定...累积累积累积...sort...完了。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
#define tcl(a,b,c) for(a=b;a<=c;a++)
struct data
{
    string n;
    int s,c,txt;
    char gan,w;
    int sum;
    int id;
}a[100001];
bool cmp(data a,data b)
{
    if(a.sum==b.sum)
    {
        return a.id<b.id;
    }
    else return a.sum>b.sum;
}
int main()
{
    int n,ans=0,i;
    scanf("%d",&n);
    tcl(i,1,n)
    {
        cin>>a[i].n>>a[i].s>>a[i].c>>a[i].gan>>a[i].w>>a[i].txt;
    }
    tcl(i,1,n)
    {
        if(a[i].s>80&&a[i].txt>=1) a[i].sum+=8000;
        if(a[i].s>85&&a[i].c>80) a[i].sum+=4000;
        if(a[i].s>90) a[i].sum+=2000;
        if(a[i].s>85&&a[i].w=='Y') a[i].sum+=1000;
        if(a[i].c>80&&a[i].gan=='Y') a[i].sum+=850;
        a[i].id=i;
        ans+=a[i].sum;
    }
    sort(1+a,1+a+n,cmp);
    cout<<a[1].n<<endl<<a[1].sum<<endl<<ans;
    return 0;
}

我也不知道为什么写这个
主要是这题让我明白了类型太多的时候你是没有自己想的那么厉害去用scanf的,乖乖用cin..

posted @   JerryVoider  阅读(179)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示