龙虎斗 - 洛谷P5016
CODE
#include <iostream>
#include <cmath>
using namespace std;
#define For(a, b, c) for(int a = b; a <= c; a++)
long long n, c[100010], m, p, s1, s2;
long long drgon, tiger, gap, minn;
int main(){
ios::sync_with_stdio(0);
cin >> n;
For(i, 1, n)
cin >> c[i];
cin >> m >> p >> s1 >> s2;
c[p] += s1;
For(i, 1, m-1)
drgon += c[i] * (m-i);
For(i, m+1, n)
tiger += c[i] * (i - m);
gap = abs(drgon - tiger);
gap /= s2;
minn = abs(drgon - tiger);
if(drgon > tiger){
int I = 0;
For(i, gap-1, gap+1){
if(m+i < 1 || m+i > n) continue;
int Gap = abs(drgon - tiger - s2 * i);
I = Gap < minn ? i : I;
minn = Gap < minn ? Gap : minn;
}
cout << m+I << endl;
}else{
int I = 0;
For(i, gap-1, gap+1){
if(m-i < 1 || m-i > n) continue;
int Gap = abs(tiger - drgon - s2 * i);
I = Gap < minn ? i : I;
minn = Gap < minn ? Gap : minn;
}
cout << m-I << endl;
}
return 0;
}
WHRONg
注意要用long long
否则会 WHRONG ANSWER
没有未来的未来不是我想要的未来

浙公网安备 33010602011771号