Cod sursa(job #2777066)

Utilizator teodoradoraTeodora Udroiu teodoradora Data 21 septembrie 2021 23:50:33
Problema Tablete Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.37 kb
#include <fstream>

using namespace std;
ifstream cin("tablete.in");
ofstream cout("tablete.out");
int N,K,i,j,t,x[1005][1005],nr,nr2,nr3,nr4,nr5;
int main()
{
   cin>>N>>K;

if(N%2==0 && K%2==0)
   {t=1;
   for(i=1;i<=N;i++)
   for(j=1;j<=N;j++){x[i][j]=t;
                    t++;}}




 if(N%2!=0 && K%2==0)
   {t=1;
   for(i=1;i<=N;i++)
   for(j=1;j<=N;j++){x[i][j]=t;
                    t++;}

    for(i=2;i<=N-1;i=i+2)
        {nr4=x[i][K];
        for(j=K;j<=N-1;j++)x[i][j]=x[i][j]+1;
         x[i][N]=x[i+1][1];
         x[i+1][1]=x[i][K];}}



 if(N%2!=0 && K%2!=0)
  {t=1;
   for(i=N;i>=1;i--)
   for(j=1;j<=N;j++){x[i][j]=t;
                     t++;}
    nr=x[1][N];


for(j=2;j<=N;j++)x[1][j]=x[1][j]-1;

   for(i=3;i<=N-2;i=i+2)
    {nr5=x[i][K];
    for(j=2;j<=N;j++)x[i][j]=x[i][j]-1;
     x[i-2][1]=nr5;}

    x[N-2][1]=x[N][K];
    for(j=K;j<=N-1;j++)x[N][j]=x[N][j]+1;
    x[N][N]=nr;}



  if(K%2!=0 && N%2==0)
{t=1;
   for(i=1;i<=N;i++)
   for(j=1;j<=N;j++){x[i][j]=t;
                    t++;}
nr2=x[N][N];
nr3=x[1][K];
   for(j=K;j<=N-1;j++)x[1][K]=x[1][K]+1;
   x[1][N]=nr2;
   for(j=2;j<=N;j++)x[2][j]=x[2][j]-1;
   x[2][1]=nr3;
   for(i=3;i<=N;i++)for(j=1;j<=N;j++)x[i][j]=x[i][j]-1;}




for(i=1;i<=N;i++)
{for(j=1;j<=N;j++)cout<<x[i][j]<<" ";
cout<<endl;
}












    return 0;
}