比赛 2016-10-11 4 syz 评测结果 AAAAAAAAAA
题目名称 无穷的序列 最终得分 100
用户昵称 jinqiu 运行时间 0.414 s
代码语言 C++ 内存使用 5.59 MiB
提交时间 2016-10-11 19:14:44
显示代码纯文本
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;

const int maxn=15e5+10;
int n,max_num,cnt;
int num[45000],query[maxn];

int read();

int main(){
	freopen("unlessseq.in","r",stdin);
	freopen("unlessseq.out","w",stdout); 
	int i; 
	int n;
	n=read();
	for(i=1;i<=n;i++){
		query[i]=read();
		max_num=max(max_num,query[i]);
	}
	for(i=1;i;i++){
		num[i]=i*(i+1)/2;
		if(num[i]>=max_num){
			cnt=i;
			break;
		}
	}
	for(i=1;i<=n;i++){
		int t=lower_bound(num,num+cnt,query[i])-num;
		if(query[i]-num[t-1]==1)cout<<"1\n";
		else cout<<"0\n";
	}
	return 0;
}

int read(){
	int t=0;
	char s=getchar();
	while(s<'0'||s>'9')s=getchar();
	while(s>='0'&&s<='9'){
		t=(t<<3)+(t<<1)+s-'0';
		s=getchar();
	}
	return t;
}