关于P5016龙虎斗
  • 板块灌水区
  • 楼主Gsmdog_H
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/10/12 19:06
  • 上次更新2023/11/5 10:55:20
查看原帖
关于P5016龙虎斗
313616
Gsmdog_H楼主2020/10/12 19:06

WA 5 6 7 8 9 10 13

#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;

long long min_ = 2e18-1 , da , ti , n , s1 , s2 , p1 , p2 , m;
long long j[100086];

long long abs_(long long x){
    return x > 0 ? x : -x;
}

long long wdnmd(long long t){
    long long zb;
    if(t == 2){
        for(long long i = m + 1; i <= n; ++i){
            long long minn = abs_((ti + s2 * (i - m)) - da);
            if(minn < min_){
                min_ = minn;
                zb = i;
            }
        }
    }

    else if(t == 1){
        for(long long i = 1; i < m; ++i){
            long long minn = abs_((da + s2 * (m - i)) - ti);
            if(minn < min_){
                min_ = minn;
                zb = i;
            }
        }
    }

    return zb;
}

int main(){
    scanf("%lld", &n);
    for(long long i = 1; i <= n; ++i){
        scanf("%lld", &j[i]);
    }
    scanf("%lld%lld%lld%lld", &m, &p1, &s1, &s2);

    j[p1] += s1;

    for(long long i = 1; i < m; ++i){
        da += j[i] * (m - i);
    }

    for(long long i = m + 1; i <= n; ++i){
        ti += j[i] * (i - m);
    }

    if(ti > da)
        p2 = wdnmd(1);
    else if(ti < da)
        p2 = wdnmd(2);
    else if(ti == da)
        p2 = m;

    printf("%lld", p2);

    return 0;
}
2020/10/12 19:06
加载中...