제출 #17892

#제출 시각아이디문제언어결과실행 시간메모리
17892chrome홀-짝 수열 (IZhO11_oddeven)C++98
54.55 / 100
0 ms1716 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define foreach(it, S) for (__typeof (S.begin()) it = S.begin(); it != S.end(); it++)
#define all(x) x.begin(), x.end()
#define endl '\n'
#define _ ios_base :: sync_with_stdio(false); cin.tie(NULL);

#ifdef inputf
	#define fname ""
#else
	#define fname "" // <- Here
#endif

const double eps = 1e-9;
const int MaxN = int(2e5) + 256;
const int MOD = int(1e9) + 7;

template <typename T> inline T gcd(T a, T b) {
	return b ? gcd (b, a % b) : a;
}

inline bool Palindrome(const string& s) {
	return equal(s.begin(), s.end(), s.rbegin());
}

int main() { // _
	#ifdef lcl
		freopen(fname".in", "r", stdin);
		freopen(fname".out", "w", stdout);
	#endif

	ll x; cin >> x;

	if (x == 1) {
		cout << 1;
		return 0;
	}

	ll l = 0, r = 1000000000;

	while (r - l > 1) {
		ll m = l + (r - l) / 2;
		if (m * (m + 1) / 2 >= x)
			r = m;
		else
			l = m;
	}

	ll ans = r;
	if (r * (r + 1) / 2 >= x)
		ans = l;
	
	// cerr << ans << " " << l << " " << r << endl;
	

	ll k = ans * ans + 1;
	k += 2 * (x - ans * (ans + 1) / 2 - 1);

	cout << k;

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...