Cod sursa(job #1841141)

Utilizator contnouAndrei Pavel contnou Data 5 ianuarie 2017 13:06:40
Problema Tablete Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <fstream>
#define MAXN 1005

using namespace std;

ifstream f("tablete.in");
ofstream g("tablete.out");

int A[MAXN][MAXN];

int main()
{
    int n, k, cont = 1;

    f >> n >> k;

    if (n % 2 == 0) {
        for (int i = 1; i < k - 1; i++) {
            for (int j = 1; j <= n; j++) {
                A[j][i] = cont++;
            }
        }

        for (int i = 1; i <= n; i++) {
            A[i][k - 1] = cont++;
            A[i][k] = cont++;
        }

        for (int i = k + 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                A[j][i] = cont++;
            }
        }
    } else {
        //
        for (int i = 1; i < k - 1; i++) {
            for (int j = 1; j < n; j++) {
                A[j][i] = cont++;
            }
        }

        for (int i = 1; i < n; i++) {
            A[i][k - 1] = cont++;
            A[i][k] = cont++;
        }

        for (int i = 1; i < k; i++) {
            A[n][i] = cont++;
        }

        A[n][k] = ++cont;
        A[1][k+1] = cont - 1;

        for (int i = k + 1; i <= n; i++) {
            for (int j = (i == k + 1) ? 2 : 1; j <= n; j++) {
                A[j][i] = ++cont;
            }
        }
    }

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            g << A[i][j] << " ";
        }
        g << endl;
    }

    return 0;
}