Cod sursa(job #267619)

Utilizator doru.nituNitu Doru Constantin doru.nitu 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;
 }