写了51(亿)行,0分(大悲)
查看原帖
写了51(亿)行,0分(大悲)
1044512
ZHUSSR22_0724楼主2023/10/2 11:57
#include<bits/stdc++.h>
using namespace std;
int n,x[100010],m,p1,s1,s2,posans[100010],ix;
long long l,h;
int q(int p,int num){
    return p*abs(m-num);
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>x[i];
    }
    cin>>m>>p1>>s1>>s2;
    for(int i=1;i<m;i++){
        x[i]+=int(i==p1)*s1;
        l+=q(x[i],i);
    }
    for(int i=m+1;i<=n;i++){
        if(i==p1)x[i]+=s1;
        h+=q(x[i],i);
    }
    ix=1;
    if(l>h){
    	for(int i=m+1;i<=n;i++){
    		x[i]+=s2;
    		h+=q(s2,i);
    		posans[ix]=abs(l-h);
    		ix++;
		}
		sort(posans+1,posans+m);
	}
	if(h>l){
    	for(int i=1;i<m;i++){
    		x[i]+=s2;
    		l+=q(s2,i);
    		posans[ix]=abs(h-l);
    		ix++;
		}
		sort(posans+1,posans+n-m+1);
	}
	else{
    	for(int i=1;i<=n;i++){
    		x[i]+=s2;
    		l+=q(s2,i);
    		posans[ix]=abs(h-l);
    		ix++;
		}
		sort(posans+1,posans+n+1);
	}
	cout<<posans[1];
}
2023/10/2 11:57
加载中...