Cod sursa(job #1172023)

Utilizator tudorv96Tudor Varan tudorv96 Data 16 aprilie 2014 17:52:03
Problema Tablete Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
using namespace std;

ifstream fin ("tablete.in");

const int N = 1005;

int n, k, a[N][N], nr;

int main() {
    fin >> n >> k;
    freopen ("tablete.out", "w", stdout);
    for (int j = 1; j <= k - 2; ++j)
        for (int i = 1; i <= n; ++i)
            a[i][j] = (j-1) * n + ((i % n) ? i % n: n);
    for (int j = k + 1; j <= n; ++j)
        for (int i = 1; i <= n; ++i)
            a[i][j] = (j-1) * n + ((i % n) ? i % n: n);
    int nr = n * (k - 2);
    for (int i = 1; i <= n; ++i) {
        a[i][k-1] = ++nr;
        a[i][k] = ++nr;
    }
    if ((n & 1) && (k & 1)) {
        a[n][k-2]++;
        a[1][k+1]--;
        for (int i = 1; i <= n; ++i) {
            a[i][k-1]--;
            a[i][k]--;
        }
    }
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n; ++j)
            printf ("%d ", a[i][j]);
        printf ("\n");
    }
}