Cod sursa(job #267619)
Utilizator | Data | 27 februarie 2009 19:12:19 | |
---|---|---|---|
Problema | Tablete | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.71 kb |
#include<stdio.h>
FILE *f=fopen("tablete.in","r"),
*g=fopen("tablete.out","w");
int a[1001][1001], i,j,k,n,aux,nr;
int main()
{ fscanf(f,"%d %d",&n,&k);
for(i=1;i<=n;i++) for(j=1;j<=n;j++) { nr++;
a[i][j]=nr;
}
if(n%2==0&&k%2==0) for(i=1;i<=n;i++) { for(j=1;j<=n;j++) fprintf(g,"%d ",a[i][j]);
fprintf(g,"\n");
}
else if(n%2==0&&k%2!=0) { for(i=1;i<=n;i++) { if(i%2!=0) { aux=a[i][1];
for(j=1;j<n;j++) a[i][j]=a[i][j+1];
a[i][n]=a[i+1][n];
}
if(i%2==0) { for(j=n;j>1;j--) a[i][j]=a[i][j-1];
a[i][1]=aux;
}
}
for(i=1;i<=n;i++) { for(j=1;j<=n;j++) fprintf(g,"%d ",a[i][j]);
fprintf(g,"\n");
}
}
else if(n%2!=0&&k%2==0) { for(i=2;i<=n;i=i+2) { aux=a[i-1][n];
a[i-1][n]=a[i][n];
for(j=n;j>1;j--) a[i][j]=a[i][j-1];
a[i][1]=aux;
}
for(i=1;i<=n;i++) { for(j=1;j<=n;j++) fprintf(g,"%d ",a[i][j]);
fprintf(g,"\n");
}
}
else if(n%2!=0&&k%2!=0) { for(i=1;i<n;i=i+2) { aux=a[i][1];
for(j=1;j<n;j++) a[i][j]=a[i][j+1];
a[i][n]=a[i+1][1];
a[i+1][1]=aux;
}
i=n;
aux=a[i-1][n];
a[i-1][n]=a[i][n];
for(j=n;j>1;j--) a[i][j]=a[i][j-1];
a[i][1]=aux;
for(i=1;i<=n;i++) { for(j=1;j<=n;j++) fprintf(g,"%d ",a[i][j]);
fprintf(g,"\n");
}
}
fclose(f);
fclose(g);
return 0;
}