为什么只有
20分
枯了,码了挺久的,求解答
附上代码
#include <iostream>
#include <cmath>
using namespace std;
int by[100005];
int main(){
int n,m,p1,p2,s1,s2;
cin>>n;
for (int i=0;i<n;i++)
{
cin>>by[i];
}
cin>>m>>p1>>s1>>s2;
int dp=0,tp=0;
by[p1-1]+=s1;
for (int i=0;i<m-1;i++){
dp+=by[i]*(m-i-1);
}
for (int i=m;i<n;i++){
tp+=by[i]*(i-m+1);
}
int power,min=0x7fffffff;//min为最小差,power为手中兵的力量
if (dp<tp){
for (int i=0;i<m;i++){
power=(s2+by[i])*(m-i-1);
if (abs(dp+power-tp)<min){
min = abs(dp+power-tp);
p2 = i;
}
}
cout<<p2;
return 0;
}
if (dp==tp)cout<<m;
if (dp>tp){
for (int i=m;i<n;i++){
power=(s2+by[i])*(i-m+1);
if (abs(dp+power-tp)<min){
min = abs(dp+power-tp);
p2 = i;
}
}
cout<<p2;
return 0;
}
return 0;
}
只有1 4 7 8 14五个点对了...
我不甘心