Cod sursa(job #1884037)

Utilizator borscalinCalin-Stefan Georgescu borscalin Data 18 februarie 2017 13:44:08
Problema Tablete Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.34 kb
#include <iostream>
#include <fstream>
#define NMAX 1000

using namespace std;

ifstream fin("tablete.in");
ofstream fout("tablete.out");

int a[1 + NMAX + 1][1 + NMAX + 1];

int main() {
    int n,k,l,c,aux,v;
    fin >> n >> k;
    if (k & 1 == 0) {
        for (l=1; l<=n; ++l)
            for (c=1; c<=k; ++c)
                a[l][c] = (l - 1) * k + c;
        v = n * k + 1;
        for (l=1; l<=n; ++l)
            for (c=k+1; c<=n; ++c)
                a[l][c] = v++;
    } else {
        for (l=1; l<=n; ++l)
            for (c=1; c<=k; ++c)
                a[l][c] = (l - 1) * k + c;
        for (l=1; l<n; l+=2) {
            aux = a[l][k];
            a[l][k] = a[l + 1][1];
            a[l + 1][1] = aux;
        }
        if (l == n) {
            a[l][k] = n * k + 1;
            v = n * k;
            for (l=1; l<=n; ++l) {
                for (c=k+1; c<=n; ++c) {
                    a[l][c] = v++;
                    if (v == n * k + 1)
                        v++;
                }
            }
        } else {
            v = n * k + 1;
            for (l=1; l<=n; ++l)
                for (c=k+1; c<=n; ++c)
                    a[l][c] = v++;
        }
    }
    for (l=1; l<=n; ++l) {
        for (c=1; c<=n; ++c)
            fout << a[l][c] << ' ';
        fout << '\n';
    }
    return 0;
}