题意简述

见题面

思路

本题就是根据题意直接模拟的大水题。。。

但是,有几个细节:

  • NN22 是需要特判,输出 00

  • 永远不能完成的要特判,输出 1-1

  • 1-1 的特判在 00 后;

  • 全部使用 long long

参考代码(仅供参考)

#include <bits/stdc++.h>
using namespace std;

long long N , Ans , Now = 2;

int main() {
	ios::sync_with_stdio(false);
	
	cin >> N;
	
	if(N == 2) {
		cout << 0 << endl;
		return 0;
	}
	
	if(sqrt(N) != ceil(sqrt(N))) {
		cout << -1 << endl;
		return 0;
	}
	
	for(long long i = sqrt(N); i >= 2; i--) {
		Ans += i * i - Now + 1;
		Now = i;
	}
	
	cout << Ans << endl;
	
 	return 0;
}