Cod sursa(job #2752812)

Utilizator Simon2712Simon Slanina Simon2712 Data 19 mai 2021 18:44:15
Problema Tablete Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.71 kb
#include <fstream>

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

            }
        }
    }
    if(k%2==1)
    {
        a[1][k]=k+1;
        vc[k+1]=1;
        val=a[1][k];
        for(i=2;i<=n;i++)
        {
            if(i%2==1){
                a[i][k]=val+k-1;
                val+=k-1;
            }
            else{
                a[i][k]=val+k+1;
                val+=k+1;
            }
            vc[val]=1;
        }
        val=1;
        for(i=1;i<=n;i++)
        for(j=1;j<=k-1;j++)
        {
            while(vc[val] && val!=n*n)
            {
                val++;
            }
            a[i][j]=val;
            vc[val]=1;
            val++;
        }
        for(i=1;i<=n;i++)
        for(j=k+1;j<=n;j++)
        {
            while(vc[val] && val!=n*n)
            {
                val++;
            }
            a[i][j]=val;
            vc[val]=1;
            val++;
        }
        for(i=1;i<=n;i++){
            for(j=1;j<=n;j++)
                cout<<a[i][j]<<" ";
            cout<<'\n';
        }
    }
    return 0;
}