LSPITO - Help Conan ! (version 3)
Tác giả: ladpro98
Ngôn ngữ: C++
#include <bits/stdc++.h>
const int N = 2000000;
const long long lim = trunc(1e12);
using namespace std;
long long a[N];
int n;
long long k;
bool isPow2(long long x) {
while (x % 2 == 0) x = x / 2;
if (x == 1) return true;
return false;
}
bool BS(long long key) {
int l = 1, r = n, m;
while (l <= r) {
m = (l + r) / 2;
if (a[m] == key) return true;
if (a[m] < key) l = m + 1; else r = m - 1;
}
return false;
}
int main()
{
int i = 1, cnt = 0;
long long j = 2;
for(i=1; i<N; i++) {
a[i] = a[i-1] + j; cnt++;
if (a[i] > lim) break;
if (cnt >= 2) {
cnt = 0; j++; continue;
}
if (isPow2(j)) {
cnt = 0; j++;
}
}
n = i;
while (scanf("%lld", &k) == 1) {
if (BS(k)) printf("Thu Uyen\n");
else printf("Conan\n");
}
return 0;
}