洛谷 P1109 学生分组
来源:互联网 发布:js根据class隐藏div 编辑:程序博客网 时间:2024/05/29 20:00
洛谷 P1109 学生分组
题目
题目描述
有N组学生,给出初始时每组中的学生个数,再给出每组学生人数的上界R和下界L(L<=R),每次你可以在某组中选出一个学生把他安排到另外一组中,问最少要多少次才可以使N组学生的人数都在[L,R]中。
输入输出格式
输入格式:
第一行一个整数N,表示学生组数; n<=50
第二行N个整数,表示每组的学生个数;
第三行两个整数 L,R,表示下界和上界
输出格式:
一个数,表示最少的交换次数,如果不能满足题目条件输出-1
输入输出样例
输入样例#1:
2
10 20
10 15
输出样例#1:
5
题解
首先,确认总和是不是在[l*n,r*n]之间,然后再取人数小于l的组到l所需的人数和人数大于r的组到r所需的人数的最大值即答案
代码
#include<cstdio>using namespace std;int a[55],n,p,q,tot,l,r;int main(){ scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); scanf("%d%d",&l,&r); tot=0; for (int i=1;i<=n;i++) tot+=a[i]; if (tot<l*n||tot>r*n){ printf("-1"); return 0; } p=0;q=0; for (int i=1;i<=n;i++){ if (a[i]>r) p+=a[i]-r; else if (a[i]<l) q+=l-a[i]; } printf("%d",p>q?p:q); return 0;}
阅读全文
0 0
- 洛谷 P1109 学生分组
- P1109 学生分组
- 学生分组的小程序
- 使用分组查询学生相关信息
- SQL--上机一使用分组查询学生相关信息
- mysql学生成绩排名,分组取前 N 条记录
- 【BZOJ】【P1109】【POI2007】【堆积木Klo】【题解】【LIS】
- 洛谷 P2093 零件分组
- 洛谷1094纪念品分组
- 洛谷 P1094 纪念品分组
- 纪念品分组-洛谷 1094
- 洛谷 P1094 纪念品分组
- 洛谷P1094 纪念品分组
- 洛谷 P1094 纪念品分组
- 分组
- 分组
- 分组.
- 分组
- jsp组成
- 【bzoj3000】Big Number 数学
- solr集群的搭建
- intentservice详解
- JavaScript笔记(4)
- 洛谷 P1109 学生分组
- 2017年上海金马五校程序设计竞赛 I : Frog's Jumping 找规律
- 使用字典爆破加密zip
- ORACLE 11g自带DBMS函数包
- Vivado与SDK的联合调试方法-使用ILA
- 剑指offer 面试题45 圆圈中最后剩下的数字
- 递归的理解
- 关于视频中高频区域闪烁的原因分析
- memcached的CURD操作