Cod sursa(job #2776722)

Utilizator alinamihalcea3000alina mihalcea alinamihalcea3000 Data 20 septembrie 2021 20:28:51
Problema Tablete Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.93 kb
#include <fstream>

using namespace std;

ifstream fin("tablete.in");
ofstream fout("tablete.out");
int n,k,a[1001][1001],v[1001],nr,z,x,i,j;
int main()
{
    fin>>n>>k;
    if(k%2==0)
    {
        x=1;
        for (i=1; i<=n; i++)
        {
            for (j=1; j<=n; j++)
            {
                a[i][j]=x;
                x++;
                fout<<a[i][j]<<" ";
            }
            fout<<'\n';
        }
    }
    else
    {
        if(n%2==0)
        {
            x=n*n-2*(n-k);
            nr=1;
            v[nr]=x;
            for (i=n; i>=1; i--)
            {
                a[i][k]=x;
                x=x-2;
                nr++;
                v[nr]=x;
            }
        }
        else
        {
            x=n*n-1-2*(n-k);
            nr=1;
            v[nr]=x;
            for (i=n; i>=1; i--)
            {
                a[i][k]=x;
                x=x-2;
                nr++;
                v[nr]=x;
            }
        }
        x=1;
        for (i=1; i<=n; i++)
        {
            for (j=1; j<k; j++)
            {
                a[i][j]=x;
                x++;
                for(z=nr; z>=1; z--)
                {
                    if(x==v[z])
                    {
                        x++;
                        break;
                    }
                }
            }
        }
        for (i=1; i<=n; i++)
        {
            for (j=k+1; j<=n; j++)
            {
                for(z=nr; z>=1; z--)
                {
                    if(x==v[z])
                    {
                        x=x+1;
                        break;
                    }
                }
                a[i][j]=x;
                x++;
            }
        }
        for (i=1; i<=n; i++)
        {
            for (j=1; j<=n; j++)
                fout<<a[i][j]<<" ";
            fout<<'\n';
        }
    }
    return 0;
}