我把我考试时候的代码给你看看?~~(改之后的,考试时全都是int~~
by Yoo_ @ 2019-01-30 08:19:59
#include<bits/stdc++.h>
using namespace std;
long long num[100005],m,p1,s1,s2,n,sum1,sum2;
long long maxx=1000000000000005,maxn;
int main()
{
cin>>n;
for(long long i=1;i<=n;i++)
cin>>num[i];
cin>>m>>p1>>s1>>s2;
for(long long i=1;i<=n;i++)
{
if(i<m)
sum1+=num[i]*(m-i);
if(i>m)
sum2+=num[i]*(i-m);
}
if(p1>m)
{
num[p1]+=s1*(p1-m);
sum2+=s1*(p1-m);
}
if(p1<m)
{
num[p1]+=s1*(m-p1);
sum1+=s1*(m-p1);
}
if(sum1==sum2)
{
cout<<m<<endl;
return 0;
}
for(long long i=1;i<=n;i+=1)
{
long long ak=0;
if(i<m)
{
ak=sum1+s2*(m-i);
ak=abs(ak-sum2);
}
if(i>m)
{
ak=sum2+s2*(i-m);
ak=abs(ak-sum1);
}
if(i==m)
ak=abs(sum1-sum2);
if(ak<maxx)
{
maxx=ak;
maxn=i;
}
}
cout<<maxn<<endl;
return 0;
}
by DARKSTALKING @ 2019-01-30 08:28:35
```cpp
#include<bits/stdc++.h>
using namespace std;
long long num[100005],m,p1,s1,s2,n,sum1,sum2;
long long maxx=1000000000000005,maxn;
int main()
{
cin>>n;
for(long long i=1;i<=n;i++)
cin>>num[i];
cin>>m>>p1>>s1>>s2;
for(long long i=1;i<=n;i++)
{
if(i<m)
sum1+=num[i]*(m-i);
if(i>m)
sum2+=num[i]*(i-m);
}
if(p1>m)
{
num[p1]+=s1*(p1-m);
sum2+=s1*(p1-m);
}
if(p1<m)
{
num[p1]+=s1*(m-p1);
sum1+=s1*(m-p1);
}
if(sum1==sum2)
{
cout<<m<<endl;
return 0;
}
for(long long i=1;i<=n;i+=1)
{
long long ak=0;
if(i<m)
{
ak=sum1+s2*(m-i);
ak=abs(ak-sum2);
}
if(i>m)
{
ak=sum2+s2*(i-m);
ak=abs(ak-sum1);
}
if(i==m)
ak=abs(sum1-sum2);
if(ak<maxx)
{
maxx=ak;
maxn=i;
}
}
cout<<maxn<<endl;
return 0;
}
```
by DARKSTALKING @ 2019-01-30 08:28:53
开 unsigned long long
by AC_Automation @ 2019-01-30 08:36:12