Please help me. I'm getting WA.
What test case can fail my code ?
/* SURENDRA KUMAR MEENA */
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <queue>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <ctime>
using namespace std;
#define ALL(s) (s).begin(),(s).end()
#define R(i,m,n) for(int i=m;i>=n;i--)
#define FF(i,m,n) for(int i=m;i<n;i++)
#define F(i,n) FF(i,0,n)
#define S(t) scanf("%d",&t)
#define CLR(s,v) memset(s,v,sizeof(s))
const int MX=2000000;
char out[1000000];
char CNT[MX];
char First[MX];
char Val[MX];
int a[MX],t;
void fn(int pos){
if(pos>=t) return;
if(Val[pos]==0){
pos<<=1;
Val[pos]=Val[pos+1]=1;
}
else{
pos<<=1;
if(First[pos]) Val[pos]=1,Val[pos+1]=0;
else Val[pos]=0,Val[pos+1]=1;
}
fn(pos);
fn(pos+1);
}
int main(){
int n,k;
S(n);
t=1<<n;
int Num;
CLR(First,-1);
CLR(CNT,0);
F(i,t-1){
S(k);
a[i]=k;
Num=1;
k+=t-1;
while(k!=1){
CNT[k]++;
if(First[k]==-1 && CNT[k]==Num){
First[k]=1;
First[k^1]=0;
}
Num<<=1;
k>>=1;
}
}
Val[1]=0;
fn(1);
F(i,t-1){
printf("%c",(char)(Val[t-1+a[i]]+'0'));
if(i<t-2) printf(" ");
}
puts("");
return 0;
}
Thanking You...!!