Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Istoria paginii utilizator/bodyionita | Monitorul de evaluare | Cod sursa (job #237445)
Cod sursa(job #237445)
#include<stdio.h>
int n,k,a[1001][1001];
void solve1(){
int i,j;
for(i=1; i<=n; ++i){
for(j=1; j<=n; ++j)
printf("%d ",a[i][j]);
printf("\n");}}
void solve2(){
int i,j,aux;
for(i=1; i<n; ++i){
aux=a[i+1][1];
a[i+1][1]=a[i][k];
for(j=k; j<n; ++j)
a[i][j]=a[i][j+1];
a[i][n]=aux;}
aux=a[n][1];
a[n][1]=a[n-1][n];
a[n-1][n]=a[n][k];
for(i=k; i>1; --i)
a[n][i]=a[n][i-1];
a[n][1]=aux;
for(i=1; i<=n; ++i){
for(j=1; j<=n; ++j)
printf("%d ",a[i][j]);
printf("\n");}}
void solve3(){
int i,j,aux;
for(i=2; i<n; i+=2){
aux=a[i+1][1];
a[i+1][1]=a[i][k];
for(j=k; j<n; ++j)
a[i][j]=a[i][j+1];
a[i][n]=aux;}
for(i=1; i<=n; ++i){
for(j=1; j<=n; ++j)
printf("%d ",a[i][j]);
printf("\n");}}
void solve4(){
int i,j,aux;
for(i=1; i<n; i+=2){
aux=a[i+1][1];
a[i+1][1]=a[i][k];
for(j=k; j<n; ++j)
a[i][j]=a[i][j+1];
a[i][n]=aux;}
aux=a[n][1];
a[n][1]=a[n-1][n];
a[n-1][n]=a[n][k];
for(i=k; i>1; --i)
a[n][i]=a[n][i-1];
a[n][1]=aux;
for(i=1; i<=n; ++i){
for(j=1; j<=n; ++j)
printf("%d ",a[i][j]);
printf("\n");}}
void read(){
int i,j,x=0;
scanf("%d%d",&n,&k);
for(i=1; i<=n; ++i)
for(j=1; j<=n; ++j)
a[i][j]=++x;
if(n%2==0&&k%2==0)
solve1();
else if(n%2==0&&k%2!=0)
solve2();
else if(n%2!=0&&k%2==0)
solve3();
else if(n%2!=0&&k%2!=0)
solve4();}
int main(){
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
read();
return 0;}