题目链接:http://codeforces.com/problemset/problem/540/B

题目意思:给出 k 个test的成绩,要凑剩下的 n-k个test的成绩,使得最终的n个test之和 <= x,且中位数 >= y。凑的时候   1 <= test的成绩 <= p

做得可辛苦了,泪~~~

  首先统计给出的 k 个test中有多少个是 >= y 的,然后从后往前补充,直到中位数是 k ,其余的数用 1 来填充。

  无解结果需要考虑清楚。(1)n-k+sum_k 是最小的和,如果比x小那么就无解;(2)凑的y的数目和、剩下填充1的和、sum_k三者之和 大于 x 。  (3)凑的y的数目比可填充的数量(n-k) 还要多也无解。

  还有一个小细节,凑的y的数目可能为负数,特判一下,负数的话用 0 替代。

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std; int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif // ONLINE_JUDGE int n, k, p, x, y;
while (scanf("%d%d%d%d%d", &n, &k, &p, &x, &y) != EOF) {
int a;
int sum = ;
int cnt = ;
for (int i = ; i <= k; i++) {
scanf("%d", &a);
if (a >= y)
cnt++;
sum += a;
}
int mid_p = (n+)/; // 中位数位置
int rem = n - k;
int y_num = mid_p - cnt; // 补充y的个数,直到中位数是 y
if (y_num * y + (rem-y_num) + sum > x || y_num > rem || n-k + sum > x)
puts("-1");
else {
y_num = (y_num < ? : y_num);
for (int i = ; i < y_num; i++)
printf("%d ", y);
for (int i = ; i < rem-y_num; i++)
printf("%d%c", , i != rem-y_num- ? ' ' : '\n');
}
}
return ;
}

codeforces 540B.School Marks 解题报告的更多相关文章

  1. Codeforces Round 665 赛后解题报告(暂A-D)

    Codeforces Round 665 赛后解题报告 A. Distance and Axis 我们设 \(B\) 点 坐标为 \(x(x\leq n)\).由题意我们知道 \[\mid(n-x)- ...

  2. Codeforces Round 662 赛后解题报告(A-E2)

    Codeforces Round 662 赛后解题报告 梦幻开局到1400+的悲惨故事 A. Rainbow Dash, Fluttershy and Chess Coloring 这个题很简单,我们 ...

  3. CodeForces 540B School Marks

    http://codeforces.com/problemset/problem/540/B School Marks Time Limit:2000MS     Memory Limit:26214 ...

  4. Codeforces Round #277.5 解题报告

    又熬夜刷了cf,今天比正常多一题.比赛还没完但我知道F过不了了,一个半小时贡献给F还是没过--应该也没人Hack.写写解题报告吧= =. 解题报告例如以下: A题:选择排序直接搞,由于不要求最优交换次 ...

  5. codeforces B. Simple Molecules 解题报告

    题目链接:http://codeforces.com/problemset/problem/344/B 题目意思:这句话是解题的关键: The number of bonds of an atom i ...

  6. codeforces 591A. Wizards' Duel 解题报告

    题目链接:http://codeforces.com/problemset/problem/591/A 题目意思:其实看下面这幅图就知道题意了,就是Harry 和 He-Who-Must-Not-Be ...

  7. codeforces 582A. GCD Table 解题报告

    题目链接:http://codeforces.com/problemset/problem/582/A 网上很多题解,就不说了,直接贴代码= = 官方题解: http://codeforces.com ...

  8. codeforces 581C. Developing Skills 解题报告

    题目链接:http://codeforces.com/problemset/problem/581/C 题目意思:给出 n 个数:a1, a2, ..., an (0 ≤ ai ≤ 100).给出值 ...

  9. codeforces 577B. Modulo Sum 解题报告

    题目链接:http://codeforces.com/problemset/problem/577/B 题目意思:就是给出 n 个数(a1, a2, ..., an) 和 m,问能不能从这 n 个数中 ...

随机推荐

  1. CF460C Present (二分 + 差分数列)

    Codeforces Round #262 (Div. 2) C C - Present C. Present time limit per test 2 seconds memory limit p ...

  2. List<List<double>> lsls = null; 根据double值来重新排序lsls...

    "确定:Node-data = (7,2).具体是:根据x维上的值将数据排序, 6个数据的中值(所谓中值,即中间大小的值)为7, 所以Node-data域位数据点(,).这样, 该节点的分割 ...

  3. 关系型数据库ACID

    关系型数据库ACID 一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例 ...

  4. Aspose.Cells设置自动列宽(最佳列宽)及一些方法总结

    /// <summary> /// 设置表页的列宽度自适应 /// </summary> /// <param name="sheet">wor ...

  5. loadrunner 学习笔记--AJAX(转)

    用loadrunner测试WEB程序的时候总是会碰到AJAX或者ActiveX实现的功能,而通常这些功能会包含很多客户端函数(一般为JavaScript).我们该如何处理?如果从功能实现的角度去考虑这 ...

  6. linux 之常见的好用命令

    参考网址:软件匠艺小组之第八期把命令行玩飞起来 1.如果想要将文件重定向到文件里,而又想看重定向的内容, tee命令 例如:ls | tee foot.txt 2.如果想要字母显示为大写独特的,命令: ...

  7. WebStorm设置编辑器中的字体大小

    启动webStorm之后,点击“FIle"菜单,选择其下的”Settings" 2.在左侧的菜单中选择“Editor/Colors & Fonts/Font 在右侧Sche ...

  8. excle心得及部分应用案例

    目前数据分析方面的知识还学的不多,以后会持续向一些大牛学习,不断的学会做笔记,这样既加深了理解,也能够和大家分享交流.今天就只是把一些excle中常用的知识点总结啦~作为我博客的第一篇吧,希望自己能够 ...

  9. FineUI第九天---表单验证

    表单验证 步骤: 1.比如为TextBox设置Required=”true”或者ShowRedStar=”true”两个属性,表示此输入为必填项,并且在标签的后面显示一个红色的星号提示. 2.Vali ...

  10. IE6对png图片的处理

    在学习phpcms系统搜索模块的时候,发现下面这段代码: <!--[if IE 6]> <script type="text/javascript" src=&q ...