三分有bug,谁帮我找下
查看原帖
三分有bug,谁帮我找下
483058
陈泽涵爱g编程楼主2021/12/27 13:17
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int maxn=1e6+2;
int a[maxn];
inline long long read(){
	long long now=0,nev=1; char c=getchar();
	while(c<'0' || c>'9') { if(c=='-') nev=-1; c=getchar();}
	while(c>='0' && c<='9') { now=(now<<1)+(now<<3)+(c&15); c=getchar(); }
	return now*nev;
}
int n,k;
int pjz;
inline int cal(int x)
{
	int sum=0;
	for(int i=1;i<=n;i++)
	{
		sum+=(a[i]-pjz)*x*x*(a[i]-pjz);
	}
	sum/=(n);
	return sum;
}
void check(){
	int r=100,l=1;
	while(r>l){
		int mid=(r-l)/3;
		int xl=l+mid,xr=r-mid;
//		printf("%d ",l);
		if(abs(cal(xl)-k)>abs(cal(xr)-k)){
			l=xr;
//			cout<<1;
		}else{
			r=xl;
		}
	}
	printf("%d",l);
}
int main(){
	n=read();
	k=read();
	int flag=0;
	for(int i=1;i<=n;i++){
		a[i]=read();
		pjz+=a[i];
		if(a[i-1]!=a[i]&&i!=1){
			flag=1;
		}
	}
	pjz/=n;
	if(flag==0){
		printf("No answer!");
		return 0;
	}
	check();
	return 0;
}
2021/12/27 13:17
加载中...