Codeforces Round #301 (Div. 2) B. School Marks(贪心)
来源:互联网 发布:html源码下载 编辑:程序博客网 时间:2024/05/16 09:32
题目地址:http://codeforces.com/problemset/problem/540/B
思路:Less表示小于y的数的个数,More表示大于y等于的数的个数。则若Less>=n/2+1时无解,则n/2+1之后应加入的元素个数num为n/2+1-More,为保证总和不超过x,每次加入最小值y。n+2/1之前应加入的元素为n-More-Less-num,同理为保证总和不超过x,每次加入1。若最终总和大于x或者总元素个数小于n,则无解。
#include<cstdio>#include<vector>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int num=0;int ans[1050];int n,k,p,x,y,Less,More,sum=0;int main(){ scanf("%d%d%d%d%d",&n,&k,&p,&x,&y); for(int i=0; i<k; i++) { int x; scanf("%d",&x); sum+=x; if(x<y) Less++; else More++; } if(Less>=n/2+1) { printf("-1\n"); exit(0); } int r=n/2+1-More; while(r>0) { r--; ans[num++]=y; sum+=y; } int left=n-More-Less-num; while(left>0) { left--; ans[num++]=1; sum+=1; } if(sum>x||num+k<n) { printf("-1\n"); exit(0); } for(int i=0; i<num-1; i++) printf("%d ",ans[i]); printf("%d\n",ans[num-1]); return 0;}
0 0
- Codeforces Round #301 (Div. 2) B. School Marks(贪心)
- Codeforces Round #301 (Div. 2)B. School Marks//CodeForces - 540B 贪心
- Codeforces 540B - School Marks (贪心)
- B. School Marks (CF #301 (Div. 2))
- #301 (div.2) B. School Marks
- [CodeForces 540B]School Marks[贪心]
- Codeforces 540B School Marks 【贪心构造】
- codeforces B. School Marks
- codeforces B. School Marks
- Codeforces 540B School Marks
- CodeForces 540B School Marks
- codeforces 540B School Marks
- Codeforces 540B - School Marks
- CodeForces 540B School Marks
- School Marks CodeForces - 540B
- Codeforces Round #202 (Div. 2)B-贪心
- Codeforces Round #428 (Div. 2) B 贪心
- CodeForces - 540B School Marks (数学思维题 中位数)
- 十三、redis特性操作
- Summer day 15
- crontab 每分钟、每小时、每天、每周、每月、每年定时执行
- JSP内置对象pageContext
- _access判断文件是否存在
- Codeforces Round #301 (Div. 2) B. School Marks(贪心)
- Android view中的requestLayout和invalidate方法
- Html-常用总结
- R学习笔记
- java.lang.NoSuchMethodError: oracle.i18n.text.converter.CharacterConverterOGS.getInstance
- MySQL集群系列1:2台机器搭建双主集群
- HDU 1799 循环多少次?(DP)
- MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
- android 视频录制 保存到本地