Cod sursa(job #800325)

Utilizator thesilverhand13FII Florea Toma Eduard thesilverhand13 Data 21 octombrie 2012 12:45:21
Problema Tablete Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.47 kb
 # include <fstream>
 # include <cstring>
 # include <algorithm>

 # define dim 1005

 using namespace std;

 ifstream f("tablete.in");
 //ofstream g("tablete.out");


 int a[ dim ][ dim ];
 int viz[ dim * dim ];
 int n, k;

 void citire()
 {
     f >> n >> k;
 }

 void afisare()
 {
     int i, j;


     for ( i = 1 ; i <= n ; i++ )
     {
         for ( j = 1 ; j <= n ; j++ )
           // g << a[ i ][ j ] << " ";
           printf( "%d ", a[ i ][ j ] );
         printf( "\n" );

         //g << "\n";
     }


 }

 void rezolva()
 {
     int i, j, t, nr = 1;

     for ( i = 1 ; i <= n ; i++ )
     {
         nr = i * k;
         for ( j = k ; j >= 1 ; j-- )
         {
             if ( j == k )
             {
                 while( nr % 2 != 0 || viz[ nr ] == 1 )
                   nr++;
                 a[ i ][ j ] = nr;
                 viz[ nr ] = 1;
             }
             else
             {
                 while( viz[ nr ] == 1 )
                   nr--;
                 a[ i ][ j ] = nr;
                 viz[ nr ] = 1;
             }
         }

         for ( t = n ; t >= k + 1 ; t-- )
         {
             nr = n * n;
             while( viz[ nr ] == 1 )
                nr--;
             a[ i ][ t ] = nr;
             viz[ nr ] = 1;

         }
     }
 }

 int main()
 {
     freopen ("tablete.out", "w", stdout );
     citire();
     rezolva();
     afisare();
     return 0;
 }