Cod sursa(job #2611731)

Utilizator stefan.popescuPopescu Stefan stefan.popescu Data 7 mai 2020 15:25:35
Problema Tablete Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.77 kb
#include <iostream>
#include <fstream>
#define Flash ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);

using namespace std;
ifstream in ("tablete.in");
ofstream out("tablete.out");
int n, k;
int a[1001][1001];
int val=0;
int main()
{
    in>>n>>k;
    if(k%2==0)
    {
        for(int i=1; i<=n; i++)
            for(int j=1; j<=k; j++)
                a[i][j]=++val;
        for(int j=k+1; j<=n; j++)
            for(int i=1; i<=n; i++)
                a[i][j]=++val;
    }
    else
    {
        if(n%2==0)
        {
            for(int j=1; j<=k-2; j++)
                for(int i=1; i<=n; i++)
                    a[i][j]=++val;
            for(int i=1; i<=n; i++)
                for(int j=k-1; j<=k; j++)
                    a[i][j]=++val;
            for(int j=k+1; j<=n; j++)
                for(int i=1; i<=n; i++)
                    a[i][j]=++val;
        }
        else
        {
            for(int i=1; i<=n-4; i+=2)
            {
                a[i+1][1]=++val;
                for(int j=1; j<=k; j++)
                    a[i][j]=++val;
                for(int j=2; j<=k+1; j++)
                    a[i+1][j]=++val;
                a[i][k+1]=++val;
            }

            a[n][1]=++val;
            for(int j=1; j<=k; j++)
                a[n-1][j]=++val;
            for(int j=2; j<=k+1; j++)
                a[n][j]=++val;
            for(int j=1; j<=k; j++)
                a[n-2][j]=++val;

            a[n-2][k+1]=++val; a[n-1][k+1]=++val;

            for(int j=k+2; j<=n; j++)
                for(int i=1; i<=n; i++)
                    a[i][j]=++val;
        }

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

    return 0;
}