72分求助!!!!!
查看原帖
72分求助!!!!!
313616
Gsmdog_H楼主2020/10/12 18:53

WA5 6 7 8 9 10 13

//#include<con>
#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 18:53
加载中...