1
已解决
#include <iostream>
#include <algorithm>
using namespace std;
struct candy{
int p,c;
}c[100010];
bool cmp(candy a,candy b)
{
return a.p<b.p;
}
int main()
{
int n,b;
cin>>n>>b;
for(int i=1;i<=n;i++)
cin>>c[i].p>>c[i].c;
sort(c+1,c+1+n,cmp);
int ans=0;
for(int i=1;i<=n;i++)
{
if(b>=c[i].c*c[i].p)
{
b-=c[i].c*c[i].p;
ans+=c[i].c;
}
else
{
ans+=b/c[i].p;
break;
}
}
cout<<ans;
}
为什么只有40分???
1
已采纳
将Candy结构体里的c和p改为unsigned long long
将n和b改为unsigned long long
将ans改为unsigned long long
李牧之在2018-07-24 10:19:38追加了内容
这是满分
0
0
0