Cod sursa(job #231670)

Utilizator katakunaCazacu Alexandru katakuna Data 14 decembrie 2008 12:47:55
Problema Tablete Scor 100
Compilator cpp Status done
Runda Algoritmiada 2009, Runda 1, Studenti Marime 1.35 kb
#include<stdio.h>

int n,k,i,j,x,a[1001][1001];


int main(){


FILE *f=fopen("tablete.in","r");
fscanf(f,"%d %d",&n,&k);
fclose(f);

  for(i=1;i<=n;i++){
    for(j=1;j<=n;j++){
    x++;
    a[i][j]=x;
    }
  }


   if(n%2 == 0){
    if(k%2 == 1){
      for(i=1;i<=n;i+=2){
      x=a[i][1];
        for(j=1;j<n;j++){
        a[i][j]=a[i][j+1];
        }
        a[i][n]=a[i+1][n];

        for(j=n;j>1;j--){
        a[i+1][j]=a[i+1][j-1];
        }
      a[i+1][1]=x;
      }
    }
   }

   if(n%2 == 1){
     if(k%2 == 0){

       for(i=1;i<n;i+=2){
       x=a[i][n];
       a[i][n]=a[i+1][n];
         for(j=n;j>1;j--){
         a[i+1][j]=a[i+1][j-1];
         }
       a[i+1][1]=x;
       }
     }

     if(k%2 == 1){

       for(i=2;i+3<=n;i+=2){
       x=a[i-1][1];

          for(j=1;j<n;j++){
          a[i-1][j]=a[i-1][j+1];
          }
          
       a[i-1][j]=a[i][1];
       a[i][1]=x;

       }
       x=a[n-2][1];
       
        for(j=1;j<n;j++){
        a[n-2][j]=a[n-2][j+1];
        }

       a[n-2][n]=a[n][n];

        for(j=n;j>1;j--){
        a[n][j]=a[n][j-1];
        }
       a[n][1]=x;
     }
     
   }

FILE *g=fopen("tablete.out","w");
  for(i=1;i<=n;i++){
    for(j=1;j<=n;j++){
    fprintf(g,"%d ",a[i][j]);
    }
  fprintf(g,"\n");
  }
fclose(g);

return 0;
}