CCF太不遵守规则了
查看原帖
CCF太不遵守规则了
783336
Earth_Sky楼主2024/10/8 21:31
#include<bits/stdc++.h>
using namespace std;
const int MAX=1e5+5;
long long n,m,p1,p2,s1,s2,c[MAX];
long long l,r,minn=0x7fffffffffffffff;
int main(){
	ios::sync_with_stdio(NULL);
	cin.tie(0);cout.tie(0);
	cin>>n;for(int i=1;i<=n;i++) cin>>c[i];
	cin>>m>>p1>>s1>>s2;c[p1]+=s1;
	for(int i=1;i<m;i++) l+=c[i]*(m-i);
	for(int i=m+1;i<=n;i++) r+=c[i]*(i-m);
	for(int i=1;i<=n;i++){
		if(i<m&&minn>llabs(l+s2*(m-i)-r)){
			minn=llabs(l+s2*(m-i)-r);
			p2=i;
		}else if(i>m&&minn>llabs(r+s2*(i-m)-l)){
			minn=llabs(r+s2*(i-m)-l);
			p2=i;
		}else if(i==m&&minn>llabs(l-r)){
			minn=llabs(l-r);
			p2=m;
		}
	}
	cout<<p2;

	return 0;
}

如上,因为所有数据中,ci,s1,s2c_i,s_1,s_2均小于1e9,所以c数组不开long long应该能过的,然而第4行代码必须开long long才能过,所以,CCF的数据超出了限制

2024/10/8 21:31
加载中...