80分 第五个样例没过 有注释 会关注的

P1478 陶陶摘苹果(升级版)

DCzzy @ 2024-12-22 10:17:35

#include<bits/stdc++.h>

using namespace std;

#define ll long long

ll ans=0;
ll n,s,c1,d;
ll a[1000000],b[1000000],c[1000000];

int main()
{
    cin>>n>>s>>c1>>d;
    for (int i=1;i<=n;i++)
    {
        cin>>a[i];//苹果高度 
        cin>>b[i];//苹果力气 
    }
    for (int i=1;i<=n;i++)
    {
        b[i]=b[i]*1000+i;//方便保存索引和排序 
    }
    c1+=d;//椅子+人高 
    sort(b+1,b+n+1);//排序 
    for (int i=1;i<=n;i++)
    {
        c[i]=b[i]%1000;//数组c保存索引 
    }
    for (int i=1;i<=n;i++)
    {
        b[i]/=1000;//还原力气 
    }
    for (int i=1;i<=n;i++)
    {
        if(s<0) break; 
        if (a[c[i]]<=c1/*判断高度*/&&s>=b[i]/*判断力气*/)
        {
            ans++;//可以拿的苹果数目
            s-=b[i];//减力气 
        }
    }
    cout<<ans;//输出 
    return 0;
}

by DCzzy @ 2024-12-22 10:18:28

在我的代码上改awa


by gaohongyuan @ 2024-12-24 12:39:54

用结构体不然全乱了;(a数组和b数组)


|