#include <math.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #include <limits.h> #include <stdbool.h> int main(){ int n,x=0,y=0,z=0; scanf("%d",&n); for(int i=1;i<=n-1;i++){ for(int j=1;j<=n-1;j++){ int r=0; while(x!=n-1&&y!=n-1){ if(((n-x)>=i&&(n-y)>=j)||((n-x)>=j&&(n-j)>=i)||((n-x)==i&&(n-y)==j)||((n-x)==j&&(n-y)==i)){ if(r==0){ x=x+i; y=y+j; r=1; z=z+1; continue; } if(r==1){ x=x+j; y=y+i; r=0; z=z+1; continue; } } if(((n-x)<i&&(n-y)>=j)||((n-x)<j&&(n-j)>=i)||((n-x)!=i&&(n-y)!=j)||((n-x)!=j&&(n-y)!=i)){ if(r==0){ x=x-j; y=y+i; r=1; z=z+1; continue; } if(r==1){ x=x-i; y=y+j; r=0; z=z+1; continue; } } if(((n-x)>=i&&(n-y)<j)||((n-x)>=j&&(n-j)<i)||((n-x)!=i&&(n-y)!=j)||((n-x)!=j&&(n-y)!=i)){ if(r==0){ x=x+j; y=y-i; r=1; z=z+1; continue; } if(r==1){ x=x+i; y=y-j; r=0; z=z+1; continue; } } if(((n-x)<i&&(n-y)<j)||((n-x)<j&&(n-j)<i)){ printf("-1"); break; } } printf("%d ",z); } printf("\n"); } // your code goes here return 0; }