问题标题: 酷町堂: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,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分


0
已采纳
李醒
李醒
新手光能
新手光能

你结构体里的变量也要是long long类型的。

0
车轩立
车轩立
资深守护
资深守护

把第6行的“int”改为“long long”

0
我要回答