Cod sursa(job #3336121)

Utilizator BulbFanAndrei Popescu BulbFan Data 24 ianuarie 2026 11:35:10
Problema Tablete Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.37 kb
#include <fstream>

using namespace std;
int A[1001][1001],v[1000001];
int main()
{
    fstream fin("tablete.in");
    fstream fout("tablete.out");
    int N,K,i,x,j,a;
    fin>>N>>K;
    if((N*K)%2==1) a=1;
    else a=0;
    x=N*N;

    if(a==1)
    {
        for(j=N;j>=K+1;j--)
        {
            A[N][j]=x;
            x--;
        }
        x--;
        A[N][K]=x;

        for(j=K-1;j>=1;j--)
        {
            x--;
            A[N][j]=x;
        }
    }
    if(a==1) N=N-1;
        for(i=N;i>=1;i--)
        {
            if(a==1) N=N+1;
            for(j=N;j>=K+1;j--)
            {
                A[i][j]=x;
                x--;
            }
        }
        for(i=1;i<=x;i++) v[i]=1;
        if(a==1) N=N-1;
        for(i=N;i>=1;i--)
        {
            A[i][K]=x;
            v[x]=0;
            x=x-2;
        }
        x=A[N][K]-1;
        for(i=N;i>=1;i--)
        {
            for(j=K-1;j>=1;j--)
            {
                while(v[x]==0) x--;
                A[i][j]=x;
                x--;
            }
        }
        if(a==1)
        {
            N++;
            A[N-1][N]=A[N][K]+1;
        }

        for(i=1;i<=N;i++)
        {
            for(j=1;j<=N;j++)
            {
                fout<<A[i][j]<<" ";
                if(j==N) fout<<endl;
            }
        }

    return 0;
}