千里传送WA80求助

=( 贪心方法,各位dalao过来看

#include<bits/stdc++.h>
using namespace std;
struct node{
    int tele,cost,pos;
}a[200005],b[200005];
bool cmp(node a,node b){
    return a.cost<b.cost;
}
int main(){
    int t;
    cin>>t;
    while(t--){
        int n,c;
        cin>>n>>c;
        for(int i=1;i<=n;i++){
            cin>>a[i].tele;
            a[i].cost=a[i].tele+min(i,n+1-i);
            a[i].pos=I;
            b[i].cost=a[i].tele+I;
            b[i].pos=I;
        }
        sort(a+1,a+n+1,cmp);
        sort(b+1,b+n+1,cmp);
        int s=0;
        s+=b[1].cost;
        if(s>c){
            cout<<0<<endl;
            continue;
        }
        int p=b[1].pos,cnt=0,ans=1;
        while(s<=c){
            if(a[cnt+1].pos==p){
                cnt++;
            }
            if(s>c||cnt+1>n) break;
            s+=a[cnt+1].cost;
            if(s>c||cnt+1>n) break;
            cnt++;
            ans++;
        }
        cout<<ans<<endl;
    }
}
2 个赞

#include<bits/stdc++.h>
using namespace std;
就这句我听得懂,其他我…
不会!

已经解决了