计蒜客: 小z的合影
生活随笔
收集整理的這篇文章主要介紹了
计蒜客: 小z的合影
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://nanti.jisuanke.com/t/16498
題目描述
上海迪士尼今年終于開園,小z在開園的第一天就來玩了,也有很多小朋友來玩,小朋友們最喜歡和氣球合影了。小z恰好有一些氣球,這樣小朋友就可以和小z合影了,小z也最喜歡和小朋友合影了。但是每個小朋友都很傲嬌,對氣球的數量都有要求,如果小z的氣球少于這個數量小朋友是不會和小z合影的。同時每個小朋友都有一些棒棒糖,在合影之后就會把棒棒糖給小z。為了能讓更多的小朋友和小z合影,小z可以去買更多的氣球。恰好小p在迪士尼里賣氣球,小z每花費一個花費糖可以從小p那里買到一個氣球。
現在,請幫助小z和更多的小朋友合影。
輸入描述
輸入包含多組數據。
每組數據的第一行有兩個整數n和k,1<=n<10000,1<=k<10000,表示有n個小朋友,小z手里有k個氣球。
下面有n行,每行兩個整數ai和bi,1<=ai,bi<100000000,表示第i的小朋友有ai個棒棒糖,希望與至少bi個氣球合影。
輸出描述
對每一組輸入數據,輸出一行,小z最多能和多少小朋友合影。
樣例輸入
2 1 1 5 4 1 2 2 5 6 3 1
樣例輸出
2 1
先按照所需要的氣球排序,再按照順序拍照即可,因為只有從最小的開始才能獲得更多的糖果去換取氣球。如果最小的都滿足不了,后面的也無法滿足,直接跳出循環。
#include<stdio.h>
#include<algorithm>
#define N 100200
using namespace std;
struct data
{
int a;
int b;
}a[N];
int cmp(struct data x,struct data y)
{
return x.b>y.b?0:1;
}
int main()
{
long long n,i,ans,sum;
while(scanf("%lld%lld",&n,&sum)!=EOF)
{
ans=0;
for(i=0;i<n;i++)
scanf("%d%d",&a[i].a,&a[i].b);
sort(a,a+n,cmp);
for(i=0;i<n;i++)
{
if(sum>=a[i].b)
{
sum+=a[i].a;
ans++;
}
else
break;
}
printf("%lld
",ans);
}
return 0;
}
總結
以上是生活随笔為你收集整理的计蒜客: 小z的合影的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R语言 EFA(探索性因子分析)
- 下一篇: 腾讯蓝鲸自动化运维平台简介部署及常见报错