问题标题: 酷町堂:2794 买礼物

0
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,s,cnt;
struct me{
    int Pi,Ci;
}a[100005];
bool cmp(me x,me y){
    return x.Pi<y.Pi;
}
int main(){
    cin>>n>>s;
    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(s>=(a[i].Pi*a[i].Ci)){
            s-=(a[i].Pi*a[i].Ci);
            cnt+=a[i].Ci;
        }
        else{
            int m=s*1.0/a[i].Pi;
            cnt+=m;
            break;
        }
    }
    cout<<cnt;
    return 0;
}

 

50


0
已采纳
杜智宸
杜智宸
中级光能
中级光能

结构体内部也要用longlong

0
甄子烨
甄子烨
高级光能
高级光能

内外都得是long long!!!!

0
我要回答