Saving HDU |
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) |
Total Submission(s): 1629 Accepted Submission(s): 716 |
|
Problem Description 话说上回讲到海东集团面临内外交困,公司的元老也只剩下XHD夫妇二人了。显然,作为多年拼搏的商人,XHD不会坐以待毙的。
|
Input 输入包含多个测试实例,每个实例的第一行是两个整数v和n(v,n<100),分别表示口袋的容量和宝贝的种类,接着的n行每行包含2个整数pi和mi(0<pi,mi<10),分别表示某种宝贝的单价和对应的体积,v为0的时候结束输入。
|
Output 对于每个测试实例,请输出XHD最多能取回多少价值的宝贝,每个实例的输出占一行。
|
Sample Input 2 23 12 30
|
Sample Output 5经过锦囊相助,HDU会脱离危机吗?欲知后事如何,且听下回分解——
|
Author lcy
|
Source ACM程序设计_期末考试(时间已定!!)
|
Recommend lcy |
代码:
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<stdio.h>
#include<algorithm>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;//头文件
struct Num{
int pi;
int mi;
}arg[110];
bool cmp(Num x,Num y)
{
return x.pi>y.pi;
}
int main()
{
int v,n;
while(1)
{
memset(arg,0,sizeof(arg));
cin>>v;if(v==0)break;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>arg[i].pi>>arg[i].mi;
}
int sum=0;
sort(arg,arg+n,cmp);
int flag=1;
for(int i=0;i<n&&flag;i++)
{
for(int j=1;j<=arg[i].mi;j++)
{
v-=1;
sum+=arg[i].pi;
if(v==0)
{
flag=0;
break;
}
}
}
cout<<sum<<endl;
}
return 0;
}