gdoi2009中山市选T2 小球
来源:互联网 发布:岸谷新罗知乎 编辑:程序博客网 时间:2024/04/29 04:48
问题描述:
给定n个不同颜色的球,每个球都有一个分数,同时有m个瓶子,每个瓶子都有固定的容量。现在,你必须把球放到瓶子里面。请编程计算最多能放多少个球到这些瓶子里。
输入格式:
输入包含多组数据。
每组数据的第一行为两个整数n, m,分别表示球的个数和瓶子的个数。
接下来的n行,每一行包含一个整数p,表示相应的球的分数。
接下来的m行,每一行包含两个整数c和q, 分别表示每个瓶子的容量(最多能装多少个球)和分数上界(放进该瓶子的每个球的分数都不能超过去q)。
当输入n,m均为0时,表示输入结束。
输出格式:
对于每组数据,输出两个整数B和S,分别表示总共能放进瓶子里的球的最大数目,以及在这个前提下,放进瓶子里面的所有球的最大分数总和。B和S以空格隔开,每组答案独占一行。
输入样例:
输出样例:
2 1
2
3
1 2
2 2
4
5
2 4
2 5
0 0
1 2
2 9
数据范围:
对于20%的数据,有1<=n<=10,0<=m<=10。
对于40%的数据,有1<=n<=50,0<=m<=50。
对于全部的数据,有1<=n<=200,0<=m<=200,1 <= p <= 10^6, 0 <= c <= 200, 1 <= q <= 10^6.
================================================================#include<algorithm>
#include<fstream>
#include<functional>
using namespace std;
const int maxn = 205;
struct Tnode {
int volume, score_limit;
bool operator<(const Tnode x)const {
return score_limit > x.score_limit;
}
} bottle[maxn];
ifstream fin("ball.in");
ofstream fout("ball.out");
int n, m, score[maxn];
int main() {
while(1) {
fin >> n >> m;
if(n == 0 && m == 0)break;
for(int i = 0; i != n; ++i)fin >> score[i];
for(int i = 0; i != m; ++i)fin >> bottle[i].volume >> bottle[i].score_limit;
sort(score, score + n, greater<int>());
sort(bottle, bottle + m);
int cnt = 0, sum = 0;
int i = 0, j = 0, put_in = 0;
while(i != n && j != m) {
if(score[i] > bottle[j].score_limit) {
++i;
continue;
}
if(put_in < bottle[j].volume) {
++put_in;
++cnt;
sum += score[i++];
} else {
put_in = 0;
++j;
}
}
fout << cnt << " " << sum << endl;
}
return 0;
}
- gdoi2009中山市选T2 小球
- gdoi2009中山市选T1 谁能赢呢?
- BZOJ2465: [中山市选2009]小球
- 2465: [中山市选2009]小球
- bzoj2465: [中山市选2009]小球
- bzoj 2465: [中山市选2009]小球 贪心
- bzoj 2465: [中山市选2009]小球
- [BZOJ]2465: [中山市选2009]小球 费用流
- [中山市选] 杀人游戏
- [中山市选] 序列
- 【中山市选2008】矩阵
- 【中山市选2008】三角形
- 【中山市选2008】小树
- 【中山市选2008】矩阵
- 【中山市选2008】矩阵
- [中山市选] 完全平方数
- 2463: [中山市选2009]谁能赢呢?
- [BZOJ2463]中山市选2009 谁能赢呢
- usaco2016open gold2 closing
- 进程同步之理发师问题
- usaco2016open gold3 248
- Activiti(十一)——分配组任务的三种方式
- gdoi2009中山市选T1 谁能赢呢?
- gdoi2009中山市选T2 小球
- USACO 2016 JANUARY CONTEST, BRONZE PROBLEM 1. PROMOTION COUNTING
- Android CTS Verifier bug - Streaming Video Quality Verifier
- USACO 2016 JANUARY CONTEST, BRONZE PROBLEM 3. MOWING THE FIELD(收割庄稼)
- STL之pair
- 如何考试
- 第三周小结+赛前最终总结(4.24~4.27)
- 2016 年大沥镇小学青少年信息学奥林匹克竞赛反思(甲乙组)
- TestNG中的数据源DataProvider概述