52pts求助
查看原帖
52pts求助
183026
Cocoly1990楼主2020/10/18 22:51
// Qiuly will helps me AC this problem in one time.
#include<bits/stdc++.h>
using namespace std ;
long long n , m , a[100007] , p1 , s1 , s2 , dragon , tiger , ans , ansi;  
int main()
{
	

	cin >> n ;
	for(int i = 1 ; i <= n ; i ++)
	{
		cin >> a[i] ;
	}
	cin >> m >> p1 >> s1 >> s2 ;
	a[p1] += s1 ;
	for(int i = 1 ; i < m ; i ++)
	{
		dragon += (m - i) * a[i] ;
	}
	for(int i = m + 1 ; i <= n ; i ++)
	{
		tiger += (i - m) * a[i];
	}
	ans = abs(dragon - tiger) ;
	ansi = m ;
	if( dragon < tiger )
		for(int i = 1 ; i < m ; i ++)
			if(abs(( dragon + (m - i) * s2 ) - tiger) <= ans) { ans = abs(( dragon + (m - i) * s2 ) - tiger); ansi = i ; }
	else
		for(int i = m + 1 ; i <= n ; i ++)
			if(abs(( tiger + (i - m) * s2 ) - dragon) < ans) { ans = abs(( tiger + (i - m) * s2 ) - dragon); ansi = i ; }
	cout << ansi ;
	return 0 ;
} 

已开long long

2020/10/18 22:51
加载中...