zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 3 A

    A. USB Flash Drives
    time limit per test
    2 seconds
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Sean is trying to save a large file to a USB flash drive. He has n USB flash drives with capacities equal to a1, a2, ..., an megabytes. The file size is equal to m megabytes.

    Find the minimum number of USB flash drives needed to write Sean's file, if he can split the file between drives.

    Input

    The first line contains positive integer n (1 ≤ n ≤ 100) — the number of USB flash drives.

    The second line contains positive integer m (1 ≤ m ≤ 105) — the size of Sean's file.

    Each of the next n lines contains positive integer ai (1 ≤ ai ≤ 1000) — the sizes of USB flash drives in megabytes.

    It is guaranteed that the answer exists, i. e. the sum of all ai is not less than m.

    Output

    Print the minimum number of USB flash drives to write Sean's file, if he can split the file between drives.

    Sample test(s)
    input
    3
    5
    2
    1
    3
    output
    2
    input
    3
    6
    2
    3
    2
    output
    3
    input
    2
    5
    5
    10
    output
    1
    Note

    In the first example Sean needs only two USB flash drives — the first and the third.

    In the second example Sean needs all three USB flash drives.

    In the third example Sean needs only one USB flash drive and he can use any available USB flash drive — the first or the second.

    贪心,这个没什么好说的,拿大的放进去就好

    #include<stdio.h>
    //#include<bits/stdc++.h>
    #include<string.h>
    #include<iostream>
    #include<math.h>
    #include<sstream>
    #include<set>
    #include<queue>
    #include<map>
    #include<vector>
    #include<algorithm>
    #include<limits.h>
    #define inf 0x3fffffff
    #define INF 0x3f3f3f3f
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    #define LL long long
    #define ULL unsigned long long
    using namespace std;
    int i,j;
    int t;
    int n,m;
    int a[1000000];
    int main()
    {
        int sum=0;
        int num=1;
        cin>>n>>m;
        for(i=0;i<n;i++)
        {
            cin>>a[i];
        }
        sort(a,a+n);
        for(i=n-1;i>=0;i--)
        {
            sum+=a[i];
            if(sum>=m)
            {
                break;
            }
        }
        cout<<n-i<<endl;
        return 0;
    }
    

      

  • 相关阅读:
    BZOJ 2821: 作诗(Poetize)( 分块 )
    BZOJ 2440: [中山市选2011]完全平方数( 二分答案 + 容斥原理 + 莫比乌斯函数 )
    BZOJ 1058: [ZJOI2007]报表统计( 链表 + set )
    BZOJ 1034: [ZJOI2008]泡泡堂BNB( 贪心 )
    BZOJ 1016: [JSOI2008]最小生成树计数( kruskal + dfs )
    BZOJ 2329: [HNOI2011]括号修复( splay )
    BZOJ 3143: [Hnoi2013]游走( 高斯消元 )
    BZOJAC400题留念
    BZOJ 2982: combination( lucas )
    poj 3233
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/5064716.html
Copyright © 2011-2022 走看看