88分,求助!!

P5016 [NOIP2018 普及组] 龙虎斗

我把我考试时候的代码给你看看?~~(改之后的,考试时全都是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


|