Cod sursa(job #231811)

Utilizator Binary_FireFlorin Pg Binary_Fire Data 14 decembrie 2008 14:29:17
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <cstdio>

#define fin  "tablete.in"
#define fout "tablete.out"

const int Nmax = 1024;

int N,K,v[Nmax][Nmax];

int main()
{
    int i,j,k;
    
    freopen(fin,"r",stdin);
    freopen(fout,"w",stdout);
    
    scanf("%d%d",&N,&K);
    
    k = 0;
    for ( i = 1; i <= N; ++i )
    for ( j = 1; j <= N; ++j )
        v[i][j] = ++k;
    
    for ( i = 1; i < N; ++i )
        if ( v[i][K] % 2 != 0 )
        {
           k = v[i][K];
           for ( j = K; j < N; ++j )
               v[i][j] = v[i][j+1];
           v[i][N] = v[i+1][1];
           v[i+1][1] = k;
        }
    
    if ( v[N][K] % 2 != 0 )
    {
       k = v[N][K];
       for ( i = K; i > 1; -- i )
           v[N][i] = v[N][i-1];
       v[N][1] = v[N-1][N];
       v[N-1][N] = k;
       i = 1;
       while ( v[N][i] > v[N][i+1] )
       {
             int aux;
             aux = v[N][i]; v[N][i] = v[N][i+1]; v[N][i+1] = aux;
             ++i;      
       }
    }
    
    for ( i = 1; i <= N; ++i )
    {
        for ( j = 1; j <= N; ++j )
            printf("%d ",v[i][j]);   
        printf("\n");
    }
    
    return 0;   
}