Cod sursa(job #2456026)

Utilizator alexsandulescuSandulescu Alexandru alexsandulescu Data 13 septembrie 2019 13:14:38
Problema Tablete Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.2 kb
#include <bits/stdc++.h>

using namespace std;

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

int N, K, a[1003][1003];
int main() {
    f >> N >> K;
    if(N % 2 == 0 && K % 2 == 0) {
        for(int i = 1; i <= N; i++) {
            for(int j = 1; j <= N; j++)
                g << N * (i - 1) + j << " ";
            g << "\n";
        }

    } else if(N % 2 == 0 && K % 2 == 1) {
        for(int i = 1; i <= N; i++) {
            for(int j = 1; j <= N; j++)
                a[i][j] = N * (i - 1) + j;
        }
        for(int i = 1; i <= N; i += 2) {
            for(int j = 2; j <= N; j++)
                g << a[i][j] << " ";
            g << a[i + 1][N] << "\n" << a[i][1] << " ";
            for(int j = 1; j < N; j++)
                g << a[i + 1][j] << " ";
            g << "\n";

        }
    } else if(N % 2 == 1 && K % 2 == 0) {
        for(int i = 1; i <= N; i++) {
            for(int j = 1; j <= N; j++)
                a[i][j] = N * (i - 1) + j;
        }
        for(int i = 2; i < N - 2; i += 2) {
            int aux = a[i][1];
            for(int j = 1; j < N; j++)
                a[i][j] = a[i][j + 1];
            int aux2 = a[i + 2][N];
            for(int j = N; j > 1; j--)
                a[i + 2][j] = a[i + 2][j - 1];
            a[i + 2][1] = aux;
            a[i][N] = aux2;

        }
        for(int i = 1; i <= N; i++) {
            for(int j = 1; j <= N; j++)
                g << a[i][j] << " ";
            g << "\n";
        }

    } else if(N % 2 == 1 && K % 2 == 1) {
        for(int i = 1; i <= N; i++) {
            for(int j = 1; j <= N; j++)
                a[i][j] = N * (i - 1) + j;
        }
        for(int i = 1; i < N; i += 2) {
            int aux = a[i][1];
            for(int j = 1; j < N; j++)
                a[i][j] = a[i][j + 1];
            int aux2 = a[i + 1][1];
            a[i + 1][1] = aux;
            a[i][N] = aux2;
        }
        for(int i = 1; i < N; i++) {
            for(int j = 1; j < N; j++)
                g << a[i][j] << " ";
            g << a[N][i] << "\n";
        }
        for(int i = 1; i <= N; i++)
            g << a[i][N] << " ";
        g << "\n";
    }
    return 0;
}