Cod sursa(job #3337461)

Utilizator victormedianvictor median victormedian Data 27 ianuarie 2026 20:39:12
Problema Tablete Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.57 kb
#include <fstream>

using namespace std;

ifstream cin("tablete.in");
ofstream cout("tablete.out");

int a[1001][1001];
int v[1000001];
int main()
{
    int k, n, val=0, i, j;
    cin>>n>>k;
    if(k%2==0)
    {
        if(n%2==0)
        {
            for(i=1;i<=n;i++)
            {
                cout<<'\n';
                for(j=1;j<=n;j++)
                {
                    val++;
                    cout<<val<<" ";
                }
            }
        }
        else
        {
            for(i=1;i<=n;i++)
            {
                for(j=1;i<=k-1;j++)
                {
                    val++;
                    a[i][j]=val;
                }
            }
            for(i=1;i<=n;i++)
            {
                for(j=k;j<=n;j++)
                {
                    val++;
                    a[i][j]=val;
                }
            }
            for(i=1;i<=n;i++)
            {
                cout<<'\n';
                for(j=1;j<=n;j++)
                {
                    cout<<a[i][j]<<" ";
                }
            }
        }
    }
    else
    {
        int idx=1;
        int fin=n*n;
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=k;j++)
            {
                if(j!=k)
                {
                    for(idx=1;idx<=fin;idx++)
                    {
                        if(v[idx]==0)
                        {
                            v[idx]=1;
                            break;
                        }
                    }
                    a[i][j]=idx;
                }
                else
                {
                     for(idx=1;idx<=fin;idx++)
                    {
                        if(v[idx]==0&&idx%2==0)
                        {
                            v[idx]=1;
                            break;
                        }
                    }
                    a[i][j]=idx;
                }
            }
        }
        for(i=1;i<=n;i++)
        {
            for(j=k+1;j<=n;j++)
            {
                for(idx=1;idx<=fin;idx++)
                    {
                        if(v[idx]==0)
                        {
                            v[idx]=1;
                            break;
                        }
                    }
                    a[i][j]=idx;
            }
        }
        for(i=1;i<=n;i++)
        {
            cout<<'\n';
            for(j=1;j<=n;j++)
            {
                cout<<a[i][j]<<" ";
            }
        }
    }
    return 0;
}