题目描述 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<bits/stdc++.h>
using namespace std;
struct etj{
int Pi,Ci;
}a[1010];
bool cmp(etj a,etj b)
{
return a.Pi<b.Pi;
}
int main()
{
long long n,b;
int ans=0;
cin>>n>>b;
for(int i=1;i<=n;i++)
cin>>a[i].Pi;
for(int i=1;i<=n;i++)
cin>>a[i].Ci;
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++)
{
b-=a[i].Pi*a[i].Ci;
if(b>0)//如果这时候钱还有剩余
{
ans+=a[i].Ci;
}
else
{
b+=a[i].Pi*a[i].Ci;
ans+=b/a[i].Pi;
break;
}
}
cout<<ans;
return 0;
}
输出不对