谁能帮我看看啊
查看原帖
谁能帮我看看啊
1058082
outadaoki楼主2024/10/9 08:51
#include<bits/stdc++.h>
#define int long long

using namespace std;

const int N = 1e7 + 5;

int read()
{
	char ch = getchar();
	int x = 0 , f = 1;
	while(ch < '0' || ch > '9')
	{
		if(ch == '-') f = -1;
		ch = getchar();
	}
	while(ch >= '0' && ch <= '9')
	{
		x = x * 10 + ch - '0' , ch = getchar();
	}
	return x * f;
}

int quick_pow(int a , int b)
{
	if(b == 0) return 1;
	int t = quick_pow(a , b / 2);
	t *= t;
	if(b % 2 == 1) t *= a;
	return t;
}

int n = read() , a[N] , m , p , s1 , s2 , dragon , tiger , k;
double need;

signed main()
{
	for(int i = 1 ; i <= n ; i ++) a[i] = read();
	m = read() , p = read() , s1 = read() , s2 = read();
	a[p] += s1;
	for(int i = 1 ; i < m ; i ++) dragon += a[i] * (m - i);
	for(int i = m + 1 ; i <= n ; i ++) tiger += a[i] * (i - m);
	need = abs(dragon - tiger) / s2;
	if((need - floor(need) > 0.5) && (dragon > tiger)) need = ceil(need);
	else need = floor(need);
	k = need;
	if(dragon > tiger) printf("%lld" , min(n , m + k));
	else if(dragon < tiger) printf("%lld" , max(1ll , m - k));
	else cout << m;
	return 0;
}
2024/10/9 08:51
加载中...