Cod sursa(job #232607)

Utilizator alex23alexandru andronache alex23 Data 15 decembrie 2008 20:54:50
Problema Tablete Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <iostream>
#define N 1003

using namespace std;

int a[N][N], vector[N * N];
int n, k;

FILE *f = fopen("tablete.in", "r"), *g = fopen("tablete.out", "w");

int main()
 {
   
   fscanf(f, "%d %d", &n, &k);
   fclose(f);
   
   for (int i = 1; i <= n * n; i++)
      vector[i] = 0;
   
   int p = 0,x = 1;
   for (int i = 1; i <= n; i++)
      {for (int j = x; j < k; j++)
            {a[i][j] = ++p;
             vector[p] = 1;
            }
       if (!(p % 2)) {x = 2; 
                      a[i][k] = p + 2; 
                      vector[p + 2] = 1;
                      a[i + 1][1] = p + 1; 
                      vector[p + 1] = 1;
                      p = p + 2;
                      } 
                else {x = 1; 
                      a[i][k] = p + 1; 
                      vector[p + 1] = 1;
                      p = p + 1;
                      } 
      }
   
   p = 1;   
   for (int i = 1; i <= n; i++)
      for (int j = k + 1; j <= n; j++)
          {while (vector[p] == 1)
              p++;
           a[i][j] = p++;
           }  
   
   for (int i = 1; i <= n; i++)
      {for (int j = 1; j <= n; j++)
          fprintf(g, "%d ", a[i][j]);
       fprintf(g, "\n");
       }
       
   fclose(g);       
                
   return 0; 
 }