zoukankan      html  css  js  c++  java
  • 计蒜客: 小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;
    }
  • 相关阅读:
    API学习
    某社区的常用免费图床 free image hosting websites,如何用Ruby与Perl启动浏览器, 打开指定网页
    Delphi7下SuperObject的JSON使用方法
    Delphi中使用ISuperObject解析Json数据
    Delphi 数据存储到oracle数据库TBLOB/TCLOB的方法 包括JSON串的解析
    Delphi7 JSON的读取和拼接
    SQL查看所有表大小的语句
    ora12541监听程序无法识别连接
    oracle新建用户类问题
    Delphi版本插值Lagrange
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/10002935.html
Copyright © 2011-2022 走看看