先看我的八十分
#include<bits/stdc++.h>
using namespace std;
const int N=100005;
typedef long long ll;
ll a[N],n,m,p1,s1,s2;
inline ll read(){
ll a=0ll;char c=getchar();
while(!isdigit(c))c=getchar();
while(isdigit(c))a=a*10ll+c-'0',c=getchar();
return a;
}
ll sumlong,sumhu;
ll minn=1000000000000000000ll,ans=1;
inline ll abss(ll a){
return a>0?a:-a;
}
int main(){
// freopen("p5016_21.in","r",stdin);
n=read();
for(int i=1;i<=n;i++)a[i]=read();
m=read(),p1=read(),s1=read(),s2=read();
for(int i=1;i<m;i++){
sumlong+=(m-i)*a[i];
}
for(int i=m+1;i<=n;i++){
sumhu+=(i-m)*a[i];
}
if(p1<m)sumlong+=(m-p1)*s1;
else if(p1>m)sumhu+=(p1-m)*s1;
for(int i=1;i<=n;i++){
int tmp;
if(i<m){
tmp=abss(sumlong+(m-i)*s2-sumhu);
}else if(i>m){
tmp=abss(sumlong-sumhu-(i-m)*s2);
}else tmp=abss(sumlong-sumhu);
if(tmp<minn){
minn=tmp;
ans=i;
}
}
cout<<ans<<endl;
return 0;
}
呵呵所以明明开了LONGLONG结果。。。
其实百密一疏TMP明明是int类型啊啊啊 然后改了就AC了QWQ