[CodeForces-540B]
来源:互联网 发布:网络红人马浩东前女友 编辑:程序博客网 时间:2024/06/05 20:31
Little Vova studies programming in an elite school. Vova and his classmates are supposed to writen progress tests, for each test they will get a mark from 1 top. Vova is very smart and he can write every test for any mark, but he doesn't want to stand out from the crowd too much. If the sum of his marks for all tests exceeds valuex, then his classmates notice how smart he is and start distracting him asking to let them copy his homework. And if the median of his marks will be lower thany points(the definition of a median is given in the notes), then his mom will decide that he gets too many bad marks and forbid him to play computer games.
Vova has already wrote k tests and got marksa1, ..., ak. He doesn't want to get into the first or the second situation described above and now he needs to determine which marks he needs to get for the remaining tests. Help him do that.
The first line contains 5 space-separated integers: n,k,p,x andy (1 ≤ n ≤ 999,n is odd,0 ≤ k < n,1 ≤ p ≤ 1000,n ≤ x ≤ n·p,1 ≤ y ≤ p). Heren is the number of tests that Vova is planned to write,k is the number of tests he has already written,p is the maximum possible mark for a test,x is the maximum total number of points so that the classmates don't yet disturb Vova,y is the minimum median point so that mom still lets him play computer games.
The second line contains k space-separated integers:a1, ..., ak (1 ≤ ai ≤ p) — the marks that Vova got for the tests he has already written.
If Vova cannot achieve the desired result, print "-1".
Otherwise, print n - k space-separated integers — the marks that Vova should get for the remaining tests. If there are multiple possible solutions, print any of them.
5 3 5 18 43 5 4
4 1
5 3 5 16 45 5 5
-1
The median of sequence a1, ..., an wheren is odd (in this problemn is always odd) is the element staying on(n + 1) / 2 position in the sorted list ofai.
In the first sample the sum of marks equals 3 + 5 + 4 + 4 + 1 = 17, what doesn't exceed 18, that means that Vova won't be disturbed by his classmates. And the median point of the sequence {1, 3, 4, 4, 5} equals to 4, that isn't less than 4, so his mom lets him play computer games.
Please note that you do not have to maximize the sum of marks or the median mark. Any of the answers: "4 2", "2 4", "5 1", "1 5", "4 1", "1 4" for the first test is correct.
In the second sample Vova got three '5' marks, so even if he gets two '1' marks, the sum of marks will be 17, that is more than the required value of 16. So, the answer to this test is "-1".
emmmm
这一题wa了好多发emmm 有一个wa6是要考虑 加起来大于sum的话 那么那啥啥
一个wa41 是
//emmmm知道为什么了 那个要吐血了吐血了
//要记得考虑万一比如一共有10个有五个小于的 但是其实只要输出3个就够了 这一边需要考虑 wa了好多发 开心~~~~~~~
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int score[1005];//emmmm知道为什么了 那个要吐血了吐血了 //要记得考虑万一比如一共有10个有五个小于的 但是其实只要输出3个就够了 这一边需要考虑 wa了好多发 开心~~~~~~~ int main(){int n,k,p,x,y;int sum=0;int minn=0,maxx=0;scanf("%d%d%d%d%d",&n,&k,&p,&x,&y);for(int i=1;i<=k;i++){scanf("%d",&score[i]);sum=sum+score[i]; if(score[i]<y)minn++;} if(minn>n/2){printf("-1\n");return 0; }else{ int tt=min(n/2-minn,n-k);//可以填充的值 int gg=(n-tt-k)*y; if(tt+gg+sum>x){printf("-1\n");return 0;}else {for(int i=1;i<=tt;i++)cout<<"1 ";for(int i=1;i<=gg/y;i++) cout<<y<<" ";cout<<endl;}}return 0;}
- codeforces 540B-贪心
- [CodeForces-540B]
- Codeforces 540B School Marks
- CodeForces 540B School Marks
- codeforces 540B School Marks
- Codeforces 540B - School Marks
- CodeForces 540B School Marks
- CodeForces 540B--填数找中位数
- School Marks CodeForces - 540B
- codeforces B
- codeforces B
- codeforces B
- codeforces B
- Codeforces 540B - School Marks (思维)
- Codeforces 540B - School Marks (贪心)
- [CodeForces 540B]School Marks[贪心]
- Codeforces 540B School Marks 【贪心构造】
- Codeforces Round #301 (Div. 2)B. School Marks//CodeForces - 540B 贪心
- HDU 5137How Many Maos Does the Guanxi Worth
- 【数据结构与算法】二叉树的层序遍历
- shiyanbar-2
- bzoj 2752 [HAOI2012]高速公路(road) 线段树
- ERR_CONNECTION_RESET问题
- [CodeForces-540B]
- OpenGL学习之Basic-Lighting
- Spark 中的宽依赖和窄依赖
- 【原码 | 补码 | 反码】相互转换方法
- opencv-3.0.0在Ubuntu14.04下的配置与安装
- 【Bootstrap框架】——全局CSS样式(Global CSS Style)
- 什么是OR Mapping??
- 二叉树的两种创建方法和三种遍历方法
- What's the difference between Future and FutureTask in Java?