| 
 | 
back to boardHelp!!! Can anyone explain me what is yhe problem with my program.   #include<cstdio> using namespace std; int k,nr,n,p,u,i,j,obt[1000001],fol[1000001],ap[1000001],x[1000001],x1[1000001],cif[100]; char bst[1000002][32],cr[32]; int cmp(char a[32],int n,char b[32],int m) {     int i;     if(n<m) return -1;     if(n>m) return 1;     for(i=1;i<=n;i++)         if(a[i]!=b[i]) break;     if(a[i]>=b[i]) return 1;     else return -1; } int main() { //freopen("input","r",stdin); //freopen("output","w",stdout); scanf("%d",&n); u=2; x[1]=1%n; x[2]=2%n; ap[1%n]=1; ap[2%n]=1; obt[1%n]=1; obt[2%n]=2; fol[1%n]=1; fol[2%n]=1; bst[1%n][1]='1'; bst[2%n][1]='2'; for(i=2;i<=30;i++) {     p=0;     for(j=1;j<=u;j++)     {         for(k=1;k<=fol[x[j]];k++)             cr[k]=bst[x[j]][k];         cr[k]='1';         if(ap[(x[j]*10+1)%n]==0||cmp(bst[(x[j]*10+1)%n],fol[(x[j]*10+1)%n],cr,fol[x[j]]+1)>0)         {             ap[(x[j]*10+1)%n]=1;             obt[(x[j]*10+1)%n]=1;             fol[(x[j]*10+1)%n]=fol[x[j]]+1;             for(k=1;k<=fol[x[j]]+1;k++)                 bst[(x[j]*10+1)%n][k]=cr[k];             p++;             x1[p]=(x[j]*10+1)%n;         }         cr[fol[x[j]]+1]='2';         if(ap[(x[j]*10+2)%n]==0||cmp(bst[(x[j]*10+2)%n],fol[(x[j]*10+2)%n],cr,fol[x[j]]+1)>0)         {             ap[(x[j]*10+2)%n]=1;             obt[(x[j]*10+2)%n]=2;             fol[(x[j]*10+2)%n]=fol[x[j]]+1;             for(k=1;k<=fol[x[j]]+1;k++)                 bst[(x[j]*10+2)%n][k]=cr[k];             p++;             x1[p]=(x[j]*10+2)%n;         }
      }     if(ap[0]==1) break;     u=p;     for(j=1;j<=u;j++)         x[j]=x1[j]; } nr=0; if(ap[0]==0) printf("Impossible\n"); else {     for(i=1;i<=fol[0];i++)         printf("%d",bst[0][i]-48);     printf("\n"); } return 0; }  |  
  | 
|