Cod sursa(job #3331050)

Utilizator David_RadavoiRadavoi David Alexandru David_Radavoi Data 23 decembrie 2025 22:11:34
Problema Tablete Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <iostream>
#include <fstream>

using namespace std;

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

#define MAXN 1000

int m[MAXN + 2][MAXN + 2];

void easyparsol(int n){
    for (int i = 1; i <= n; i++){
        for (int j = 1; j <= n; j++){
            fout << n * (i - 1) + j << " ";
        }
        fout << '\n';
    }
}

void hardimpsol(int n, int k){
    int val = 0;
    for (int i = 1; i <= n; i++){
        for (int j = 1; j <= k; j++){
            m[i][j] = ++val;
        }
    }
    for (int i = 1; i <= n; i++){
        for (int j = k + 1; j <= n; j++){
            m[i][j] = ++val;
        }
    }
    if (n % 2 == 1){
        swap(m[1][k + 1], m[n][k]);
    }
    for (int i = 1; i < n; i += 2){
        swap(m[i][k], m[i + 1][1]);
    }
    for (int i = 1; i <= n; i++){
        for (int j = 1; j <= n; j++){
            fout << m[i][j] << " ";
        }
        fout << '\n';
    }
}

int main()
{
    int n, k;
    fin >> n >> k;
    if (k % 2 == 0){
        easyparsol(n);
    }
    else{
        hardimpsol(n, k);
    }
    return 0;
}