MnZn 刚学 OI,求助 WA 20,21,24
查看原帖
MnZn 刚学 OI,求助 WA 20,21,24
414386
Isshiki·Iroha楼主2021/12/27 19:44

防止卡精度我把原序列乘了 nn

typedef __int128 lll;
const int maxn=7e6+10;
int n;
lll k,a[maxn],avg,s,x;
inline lll Abs(lll A){
	if(A>0)return A;
	else return -A;
}
int main() {
	read(n,k);
	k*=(lll)(n)*(lll)(n)*(lll)(n);
	for(int i(1);i<=n;++i){
		read<lll>(a[i]);
		avg+=a[i];
		a[i]*=(lll)n;
	}
	for(int i(1);i<=n;++i){
		s+=(avg-a[i])*(avg-a[i]);
	}
	//write(s,avg);
	if(s==0){
		puts("No answer!");
		return 0;
	}
	x=k/s;
	x=sqrt((long double)x);
	if(Abs(x*x*s-k)>Abs((x+1)*(x+1)*s-k))write(x+1);
	else write(x>0?x:1);
	flush();
	return 0;
}
2021/12/27 19:44
加载中...