首页 > 其他分享 >1.10 05:分数线划定

1.10 05:分数线划定

时间:2023-12-03 16:55:54浏览次数:37  
标签:return 1.10 05 int sum ++ fen person 分数线

原题

错误代码:

#include<bits/stdc++.h>
using namespace std;

struct person{
    int k;
    int s;
}a[10001];

bool cmp(person l,person b)
{
    if(l.s == b.s){
        if(l.k < l.s){
            return false;
        }
        else{
            return true;
        }
    }
    else if(l.s > b.s){
        return true;
    }
    else{
        return false;
    }
}

int main()
{
    int m,n,t,sum = 0,fen;
    double m1;
    scanf("%d %d",&n,&m);
    for(int i = 1;i <= n;++ i){
        scanf("%d %d",&a[i].k,&a[i].s);
    }
    sort(a + 1,a + n + 1,cmp);    
    m1 = double(m) * 1.5;
    m = int(floor(m1));
    fen = a[m].s;
    printf("%d",fen);
    for(int i = 1;a[i].s >= fen;++ i){
        ++ sum;
    }
    printf(" %d",sum);
    for(int i = 1;a[i].s >= fen;++ i){
        printf("\n%d %d",a[i].k,a[i].s);
    }
    return 0;
}

主要是在写cmp函数的时候,没有想通这个到底是干啥的,导致排序的时候会出现混乱。其实就是检测分数相等时,返回序号小的,也就是按照序号小的排。

正确代码:

#include<bits/stdc++.h>
using namespace std;

struct person{
    int k;
    int s;
}a[10001];

bool cmp(person l,person b)
{
    if(l.s != b.s){
        return l.s > b.s; 
    }
    else{
        return l.k < b.k;
    }
}

int main()
{
    int m,n,sum = 0,fen;
    double m1;
    scanf("%d %d",&n,&m);
    for(int i = 1;i <= n;++ i){
        scanf("%d %d",&a[i].k,&a[i].s);
    }
    sort(a + 1,a + n + 1,cmp);    
    m1 = double(m) * 1.5;
    m = int(floor(m1));
    fen = a[m].s;
    printf("%d",fen);
    for(int i = 1;a[i].s >= fen;++ i){
        ++ sum;
    }
    printf(" %d",sum);
    for(int i = 1;a[i].s >= fen;++ i){
        printf("\n%d %d",a[i].k,a[i].s);
    }
    return 0;
}

 

标签:return,1.10,05,int,sum,++,fen,person,分数线
From: https://www.cnblogs.com/Qwehhh-maimaiDX/p/17873382.html

相关文章

  • 05.app常见bug解析
    一、功能bug内容显示错误功能错误界面显示错乱界面显示后台信息(sql语句、html)推送信息错误二、性能bug加载速度慢应用程序第一次启动速度慢进入到某一个界面加载速度慢启动某一个有动画效果的界面,动画执行过程加载度慢并且有卡顿响应某一个用户事件时,长时间无响应(ANR)......
  • 2023-2024-1 20231405《计算机基础与程序设计》第十周学习总结
    2023-2024-120231405《计算机基础与程序设计》第十周学习总结作业信息作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP作业要求在哪里https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/13009作业的目标自学《计......
  • GMK4050-ASEMI光伏二极管40A 50V
    编辑:llGMK4050-ASEMI光伏二极管40A50V型号:GMK4050品牌:ASEMI正向电流:40A反向耐压:50V封装:GMK批号:2023+安装类型:表面贴装型引脚数量:2工作温度:-55°C~150°C类型:光伏二极管GMK4050特性:肖特基势垒高二极管;热阻低;正向压降低,功率损耗低隔离包装设计,非常适合散热;高正向......
  • 【管理信息系统】05. 应用系统篇导论
    应用系统篇一共有五个章节职能信息系统市场生产或服务财务和会计人事层次信息系统基层中层高层流程信息系统上游:供应链系统系统中游:企业资源计划系统下游:客户关系管理系统行业信息系统政府机关银行=学校决策支持系统专家系统传统决策支持系统......
  • CF1705E Mark and Professor Koro 题解
    题意:给定一个长度为$n$$(1\len\le2e5)$的序列,每次可以把两个相等的$a_i$和$a_j$合并为一个$a_i+1$。给定$q$$(1\leq\le2e5)$次修改,每次将$a_k$修改为$l$,求每次操作后合并到无法再合并时出现的最大数。其中,$1\lea_i\le2e5$。......
  • 聪明办法学python——Task05,06
    聪明办法学python——Task5,Task6Task05——循环for循环和循环范围特点:基于提供的范围,重复执行特定范围的操作forxinrange(n,m+1):  count+=1returncountrange(x,y)是左闭右开的区间,不含yreturnsum(range(m,n+1))range的第三个参数是步长,可正可负foriinrange(......
  • day05
    1.今日内容今日内容:1、while循环2、for循环3、可变不可变类型4、基本数据类型常用操作及内置方法数字类型intfloat字符串类型2.流程控制之while循环"""语法while条件:代码1代码2代码3......
  • [AGC052B] Tree Edges XOR 题解
    题目链接点击打开链接题目解法怎么感觉这场\(B\)比\(C\)思维量更大考虑一步很妙的操作:把边权变成点权,以达到简化操作的目的使每条边的边权为两端点的异或和,手画一下可以发现,操作简化成了交换两端点的点权我们定义\(d_{1/2,i}\)定义为在\(1/2\)树上,\(i\)到根的权值......
  • 【Vulnhub 靶场】【DriftingBlues: 9 (final)】【简单】【20210509】
    1、环境介绍靶场介绍:https://www.vulnhub.com/entry/driftingblues-9-final,695/靶场下载:https://download.vulnhub.com/driftingblues/driftingblues9.ova靶场难度:简单发布日期:2021年05月09日文件大小:738MB靶场作者:tasiyanci靶场描述:getflags打靶耗时:2+小时打靶关键:......
  • 多线程连接池报错报警告[connectionpool.py:305 ] [WARNING] Connection pool is full
    第一种方法:按照建议WebDriverWait帮助解决了问题 fromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.webdriver.common.byimportByfromselenium.common.exceptionsimportT......