Cod sursa(job #3137013)

Utilizator amunnumeVlad Patrascu amunnume Data 10 iunie 2023 09:58:58
Problema Tablete Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.7 kb
#include <bits/stdc++.h>
#define N 1005
using namespace std;
ifstream fin("tablete.in");
ofstream fout("tablete.out");
int n,k,i,j,x,v[N][N],ok;
int main()
{
    fin>>n>>k;
    if(!(k&1))
    {
        for(i=1;i<=n;++i)
        for(j=1;j<=k;++j)
        {
            x++;
            v[i][j]=x;
        }
        for(i=1;i<=n;++i)
        for(j=k+1;j<=n;++j)
        {
            x++;
            v[i][j]=x;
        }
        for(i=1;i<=n;++i)
        {
            for(j=1;j<=n;++j)
              fout<<v[i][j]<<" ";
            fout<<'\n';
        }
        return 0;
    }
    if(!(n&1))
    {
        for(i=1;i<=n;++i)
        for(j=1;j<=k;++j)
        {
            if(j==1 && ok) {v[i][j]=x-1; continue;}
            x++;
            if(j==k)
            {
                if((x&1)) {ok=1; x++;}
                else ok=0;
            }
            v[i][j]=x;
        }
        for(i=1;i<=n;++i)
        for(j=k+1;j<=n;++j)
        {
            x++;
            v[i][j]=x;
        }
        for(i=1;i<=n;++i)
        {
            for(j=1;j<=n;++j)
              fout<<v[i][j]<<" ";
            fout<<'\n';
        }
        return 0;
    }
    for(i=1;i<=n;++i)
    for(j=1;j<=k;++j)
    {
        if(j==1 && ok) {v[i][j]=x-1; continue;}
        x++;
        if(j==k)
        {
            if((x&1)) {ok=1; x++;}
            else ok=0;
        }
        v[i][j]=x;
    }
    --x;
    for(i=1;i<=n;++i)
    for(j=k+1;j<=n;++j)
    {
        x++;
        if(x==n*k+1) {v[i][j]=n*k; continue;}
        v[i][j]=x;
    }
    for(i=1;i<=n;++i)
    {
        for(j=1;j<=n;++j)
        fout<<v[i][j]<<" ";
        fout<<'\n';
    }
    return 0;
}