鸡很饿,鸡要吃外卖,今天点份炸鸡外卖!
鸡使用的外卖程序有若干个满减优惠,第i个优惠可以表示为”满a.i元减b.i 元”,多个满减优惠可以叠加。
满减的具体结算流程是:假设鸡购买的食物原价共为x元,则所有满足x≥a.i的满减优惠都可以一起同时被使用,优惠后价格记为y,则鸡只要支付y元就可以了(若y≤0则不需要支付)。
现在,鸡的手机里一共只有m元钱,鸡想知道,他所购买的食物原价x最多为多少。
t<=1e4,n<=1e5,m<=1e9,a[i],b[i]<=1e9;
```
//思路:先把所有优惠卷的金额和本金累加起来,然后把需要满足的金额从大到小判断
//如果目前的最大金额都小于优惠卷金额,那么这张优惠卷就无法使用,最大金额就应该减去这张优惠卷能减的金额
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
define x first
define y second
using namespace std;
typedef pair[HTML_REMOVED] PII;
int main()
{
int t;
cin>>t;
while(t–)
{
int n,m;
cin>>n>>m;
long int sum=m;
vector[HTML_REMOVED] p;
for(int i=0;i[HTML_REMOVED]>a>>b;
sum+=b;
p.push_back(make_pair(a,b));
}
int s=p.size()-1;
sort(p.begin(),p.end());
for(int i=s;i>=0;i–)
{
if(sum<p[i].x)
sum-=p[i].y;
}
cout<<sum<<endl;
}
return 0;
}