H War of Inazuma (Easy Version)
#include<iostream>
#include<cstring>
#include<queue>
#include<map>
#include<set>
#include<algorithm>
#include<cmath>
#include<vector>
#define fi first
#define se second
#define lowbit(x) (x&-x)
using namespace std;
namespace ae86{
const int bufl=1<<15;
char buf[bufl],*s=buf,*t=buf;
inline int fetch(){
if(s==t){t=(s=buf)+fread(buf,1,bufl,stdin);if(s==t)return EOF;}
return*s++;
}
inline int read(){
int a=0,b=1,c=fetch();
while(!isdigit(c))b^=c=='-',c=fetch();
while(isdigit(c))a=a*10+c-48,c=fetch();
return b?a:-a;
}
}
using ae86::read;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<int,double> pid;
const int inf=0x3f3f3f3f;
const ll INF=2e18;
const double eps=1e-8;
const double pi=acos(-1);
const int mod=1e9+7;
int n;
int a[(1<<22)];
int main(){
cin>>n;
memset(a,-1,sizeof a);
int num=ceil(sqrt(n));
int cnt0,cnt1;
for(int i=0;i<(1<<n);i++){
if(a[i]==1){
cnt1=num;
cnt0=n-num;
}
else{
cnt0=num;
cnt1=n-num;
}
for(int j=0;j<=n-1;j++){
int tmp=i^(1<<j);
if(a[tmp]==1) cnt1--;
else if(a[tmp]==0) cnt0--;
else{
if(cnt0){
a[tmp]=0;
cnt0--;
}
else{
a[tmp]=1;
cnt1--;
}
}
}
}
for(int i=0;i<(1<<n);i++) printf("%d",a[i]);
}
京公网安备 11010502036488号