0
已解决
胡景波
中级光能
中级光能
2794 买礼品经验值:1200
题目描述 Description
某小学有n名小朋友,儿童节到了要给他们带去礼物。调查显示,有Ci个小朋友想要第i种礼品,这种礼物的售价为Pi。现在有B元的预算,他最多可以满足多少小朋友?(B的值可能很大)
输入描述 Input Description
第一行,两个整数,N B
接下来N行,每行两个整数,Pi Ci
输出描述 Output Description
输出能有多少小朋友满意
样例输入 Sample Input
5 50 5 3 1 1 10 4 7 2 60 1
样例输出 Sample Output
8
数据范围及提示 Data Size & Hint
所有数据的范围不超过long long
N<=100000
#include<iostream>
#include<algorithm>
using namespace std;
long long n,b,x;
struct me{
int PI,CI;
}a[100005];
bool cmp(me x,me y){
return x.PI<y.PI;
}
int main(){
cin>>n>>b;
for(int i=1;i<=n;i++){
cin>>a[i].PI>>a[i].CI;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
if(b>=(a[i].PI*a[i].CI)){
b-=(a[i].PI*a[i].CI);
x+=a[i].CI;
}
else{
int m=b*1.0/a[i].PI;
x+=m;
break;
}
}
cout<<x;
return 0;
}
WA50分