Cod sursa(job #1889355)

Utilizator ApostolIlieDanielApostol Daniel ApostolIlieDaniel Data 22 februarie 2017 18:10:14
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <stdio.h>
const int MAX = 1001;
int a[MAX][MAX];
char val[MAX * MAX];
int main()
{
    FILE *fin, *fout;
    int n, k, i, nr, j;
    fin = fopen ("tablete.in", "r");
    fout = fopen ("tablete.out", "w");
    fscanf (fin, "%d%d", &n, &k);
    for ( i = 1; i <= n; i++) {
        a[i][k] = i * k + (i * k) % 2;
        val[i * k + (i * k) % 2] = 1;
    }
    nr = 1;
    for ( i = 1; i <= n ;i++)
        for ( j = 1; j < k; j++)
        {
            nr = nr + val[nr];
            a[i][j] = nr;
            val[nr] = 1;
            nr++;
        }
    nr = n * n;
    for ( i = n; i >= 1 ;i--)
        for ( j = n; j > k; j--)
        {
            while (val[nr] == 1)
                nr--;
            a[i][j] = nr;
            nr--;
        }
    for ( i = 1; i <= n ;i++)
    {
        for ( j = 1; j <= n ; j++)
            fprintf (fout, "%d ", a[i][j]);
        fprintf (fout, "\n");
    }
    fclose (fin);
    fclose (fout);
    return 0;
}