Cod sursa(job #1255766)

Utilizator smaraldaSmaranda Dinu smaralda Data 5 noiembrie 2014 08:51:00
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<stdio.h>

const int NMAX = 1003;

bool vis[NMAX * NMAX];
int sol[NMAX][NMAX];

int main() {
    freopen("tablete.in", "r", stdin);
    freopen("tablete.out", "w", stdout);
    int i, j, n, k, last, leftover;

    scanf("%d%d", &n, &k);
    
    leftover = 0;
    last = 0;
    for(i = 1; i <= n; ++ i) {
        for(j = 1; j < k; ++ j) 
            if(leftover) {
                sol[i][j] = leftover;
                leftover = 0;
            }
            else
                sol[i][j] = ++ last;
        if(last % 2 == 0) {
            sol[i][j] = last + 2,
            leftover = last + 1;
            last += 2;
        }
        else
            sol[i][j] = ++ last;
    }

    for(i = 1; i <= n; ++ i)
        for(j = k + 1; j <= n; ++ j)
            if(leftover) {
                sol[i][j] = leftover;
                leftover = 0;
            }
            else
                sol[i][j] = ++ last;

    for(i = 1; i <= n; ++ i, printf("\n"))
        for(j = 1; j <= n; ++ j)
            printf("%d ", sol[i][j]);
    return 0;
}