4 solutions

  • 1
    @ 2026-10-19 10:13:39
    //正数尽量在下标为 1 时删除,负数尽量在原来的下标处删除
    //先将所有负数按原下标从大到小删除。每次代价ai*i
    //再将所有非负数按原下标从小到大删除。每次代价ai
    #include<stdio.h>
    int main(void){
        int n;
        long long sum=0;
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            long long a;
            scanf("%lld",&a);
            if(a>=0){
                sum+=a;
            }
            else{
                sum+=a*i;
            }
        }
       printf("%lld",sum);
    

    Information

    ID
    267
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    # Submissions
    677
    Accepted
    152
    Uploaded By