洛谷P1478 陶陶摘苹果(升级版)

https://www.luogu.org/problem/P1478

#include<bits/stdc++.h>
using namespace std;
int p[5010];
int n,s,a,b,cnt,ans;
int main()
{
    scanf("%d%d",&n,&s);  //n为总的苹果数目   s为总的力气 
    scanf("%d%d",&a,&b);
    for(int i=1;i<=n;i++)//在读入的时候就把不可能摘到的苹果给去掉
    {
        int u,m;
        scanf("%d%d",&u,&m);
        if(u>a+b)   continue;
        cnt++;   //cnt刚开始为0   +1后为1 
        p[cnt]=m;   //m为所花费的力气 
    }
    sort(p+1,p+1+cnt);    //数组p是从1开始输入的,所有p[0]不存在,要从1开始排序 
    for(int i=1;i<=cnt;i++)//按力气从小到大排序后优先选择消耗力气小的苹果
    {
        s=s-p[i];
        if(s>=0)ans++;
        else break;
    } 
    printf("%d",ans);
return 0;
}

 

posted @ 2019-10-07 15:35  晴屿  阅读(151)  评论(0编辑  收藏  举报