Cod sursa(job #2756391)

Utilizator maria.rotaruMaria Rotaru maria.rotaru Data 31 mai 2021 13:45:12
Problema Tablete Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.41 kb
#include <fstream>
#define NMAX 1000*1000

using namespace std;

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

int vc[NMAX+1];

int main()
{
    int n,k;
    cin>>n>>k;
    if (k%2==0 && n%2==0){
        for (int i=1; i<=n*n; i++)
            if (i%n)
                cout<<i<<" ";
            else cout<<i<<"\n";
    }
    else if (k%2==0 && n%2!=0){
        int nr = n*(n-1);
        for (int i=1; i<=nr; i++)
            if (i%(n-1))
                cout<<i<<" ";
            else cout<<i<<" "<<nr+(i/n)+1<<"\n";
    }
    else{

        int nr1 = 0, nr2;

        if (k%2!=0 && n%2==0)
        {
            for (int i=1; i<=n*n; i++)
                if ((i/n+1)%2==1){
                    if (nr1==0)
                        nr1 = i;
                    for (int j=i; j<i+n && j<=n*n; j++)
                        if (j%n==0)
                            vc[j+k+1]=1, cout<<j+k+1<<"\n";
                        else
                            vc[j+1]=1, cout<<j+1<<" ";
                    i+=n-1;
                }
                else if (nr1)
                {
                    for (int j=nr1; j<nr1+2*n && j<=n*n; j++)
                        if (!vc[j])
                            vc[j]=1, cout<<j<<" ";
                    cout<<"\n";
                    i = nr1+2*n-1;
                    nr1=0;
                }

        }

    }


    return 0;
}