问题标题: 酷町堂:2625购买糖果

1
0
已解决
王雪阳
王雪阳
高级守护
高级守护
#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
陈泉宏
陈泉宏
高级守护
高级守护

定义成long long试试,应该是90分左右

我要回答