Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define p(x,y,d) ((x&(1<<(i)))==((y&(1<<(i+d)))>>d))
- #define t(x,y) for(int x=0; x<y; x++)
- int a[31][99],m,n,d[99][99],k,p=1,s=0;
- int l(int z,int b,int k){
- t(i,k-1) if(p(z,z,1)&&p(b,b,1)&&p(b,z,0)) return 0;
- return 1;
- }
- int main(){
- FILE * f = fopen("input.txt","r"), * F = fopen("output.txt","w");
- fscanf(f,"%i%i",&m,&n);
- if (m<n){k=m;m=n;n=k;}
- t(i,n) p*=2;
- t(i,p) {t(j,p) d[i][j]=l(i,j,n);
- a[0][i]=1;}
- t(j,m-1) t(i,p) t(g,p) a[j+1][i]+=a[j][g]*d[g][i];
- t(i,p) s+=a[m-1][i];
- fprintf(F,"%i",s);
- }
Add Comment
Please, Sign In to add comment