博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
#532. 排名
阅读量:5291 次
发布时间:2019-06-14

本文共 1401 字,大约阅读时间需要 4 分钟。

题目描述

9102年,wwh第二次参见NOIP,那一年,赛制发生了改变,已经不像现在的分数了,从原来的100分制变成了一分制,即用一个[0,1]的实数来表示。同时在赛制的影响下,保证两个人的分数一定不相同。

wwh在考场上电脑死机了,考完后,就在他万念俱灰的时候,他想起来一个事情:今年总共有n道题,有m个人来考试,现在他知道了每题他自己在m个人中的排名,为了估测自己可不可以拿到省一等奖,他想知道自己n题的总分的排名最小可能值与最大可能值。

输入描述

第一行两个正整数n,m,含义见题目表述。

接下来n行每行一个[1,m]间的正整数表示wwh每一题的得分的排名。

输出描述

一行一个正整数,共两行,分别表示wwh总分排名的最小值和最大值。

样例输入1

3 3333

样例输出1

33

样例输入2

6 6123121

样例输出2

15

样例2提示

仔细观察wwh有3道题目是排在第一名的位置,利用枚举的思想,将总分抽象成为排名之和,暴力后可得无论如何安排人次,均不可能使得wwh排在第六名,只可以排在第五名。

同理,经过适当的名次安排后完全可以使得wwh排在第一。

最后的思考:在什么情况下,A的总成绩可以排在B前面?

答案:A只要有一门课比B高,A完全就有可能总成绩比B的成绩高。

继续思考样例2:

我们讨论一下排名最大值的情况。第一题没有人在wwh前面,第二题有一个人在前面,第三题有两个人,第四题没有人,第五题有一个人在前面,总共可以有4个人在wwh前面,所以wwh最坏排第5名

数据规模与约定

时间限制:1s

对于30%的数据,n<=2

另有20%的数据,m<=2

对于100%的数据,1<=n<=1000,1<=m<=10^4

 

 

 

#include
#include
#include
#include
#include
#include
using namespace std;int n,m,a,b,c;int read(){ int a=0,b=1; char ch=getchar(); while((ch<48||ch>57)&&ch!='-'){ ch=getchar(); } if(ch=='-'){ b=-1; ch=getchar(); } while(ch<48||ch>57){ ch=getchar(); } while(ch>47&&ch<58){ a=a*10+ch-48; ch=getchar(); } return a*b;}int main(){ n=read(),m=read(); a=m,c=0,b=1; int x; for(int i=1;i<=n;i++){ x=read(); a=min(a,x); b+=(x-1); c+=(m-x); } b=min(b,m); c-=(m-a); a=max(1,a-c); printf("%d\n%d",a,b); return 0;}

  

转载于:https://www.cnblogs.com/xiongchongwen/p/11582058.html

你可能感兴趣的文章
Oracle事务
查看>>
任意输入10个int类型数据,把这10个数据首先按照排序输出,挑出这些数据里面的素数...
查看>>
String类中的equals方法总结(转载)
查看>>
图片问题
查看>>
bash使用规则
查看>>
AVL数
查看>>
第二章练习
查看>>
ajax2.0
查看>>
C#时间截
查看>>
C语言程序设计II—第九周教学
查看>>
C# 获取系统时间及时间格式转换
查看>>
WCF、WebAPI、WCFREST、WebService之间的区别
查看>>
2018-2019-2-20175332-实验四《Android程序设计》实验报告
查看>>
全栈12期的崛起之捡点儿有用的说说
查看>>
基础类型
查看>>
属性动画
查看>>
标识符
查看>>
Swift 常量&变量
查看>>
Sqli labs系列-less-4 这关好坑!!!
查看>>
路由跟踪工具0trace
查看>>