规律很容易可以观察到 主要是数据范围很大,需要二分查询位置即可
#include <bits/stdc++.h>
using namespace std;
#define ls st<<1
#define rs st<<1|1
#define LL long long
const int MAXN= (int) 1e5+10;
int arr[MAXN];
void init() {
arr[1] = 1;
for (int i = 2; i <= MAXN; ++i) {
arr[i] = arr[i-1]+i-1;
}
}
int main() {
ios::sync_with_stdio(false);
init();
int T;
cin >> T;
while (T--) {
int x;
cin >> x;
if(arr[lower_bound(arr+1,arr+1+MAXN,x)-arr] == x)
cout << "1\n";
else
cout << "0\n";
}
return 0;
}