只A了第一和第四个点,求调

P1478 陶陶摘苹果(升级版)

20210649zrj @ 2022-10-28 13:30:11

RT,求调

 #include<bits/stdc++.h>
using namespace std;
struct node{int x,y;}a[50000];
int cmp(node a1,node b1)
{
    if(a1.y<=b1.y)
        return a1.y<b1.y;
    return a1.y>b1.y;
}
int main()
{
    int n,s;scanf("%d%d",&n,&s);int num,ans;scanf("%d%d",&num,&ans); 
    int m=num+ans;
    int x=0 ;
    for(int i=1;i<=n;i++)
        scanf("%d%d",&a[i].x,&a[i].y);
    sort(a+1,a+1+n,cmp);
    for(int i=1;i<=n;i++)
    {
        if(a[i].x>m||m==0)
            break;
        if(a[i].y<=s&&a[i].x<=m)
        {
            s-=a[i].y;
            x++;
        }
    }

    printf("%d",x);
    return 0;
}

by docxjun @ 2022-10-28 14:30:51

int cmp(node a1,node b1)
{
    if(a1.y<=b1.y)
        return a1.y<b1.y;
    return a1.y>b1.y;
}

这一段写的有问题

有没有一种可能return那一行是按照x排(

参考:

bool cmp1(info a,info b)
{
    return a.H<b.H;
}
bool cmp2(info a,info b)
{
    return a.S<b.S;
}

这个是我写的


by docxjun @ 2022-10-28 14:31:59

思路:如果加上椅子也够不到就删掉不考虑

之后按花费贪心


|