Cod sursa(job #2568130)

Utilizator As932Stanciu Andreea As932 Data 3 martie 2020 21:02:10
Problema Tablete Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.82 kb
#include <iostream>
#include <fstream>
#define nmax 1002
using namespace std;
ifstream fin("tablete.in");
ofstream fout("tablete.out");

int n,k,a[nmax][nmax];

int main()
{
    fin>>n>>k;
    int nr=1;

    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            a[i][j]=nr++;

    if(n%2==0 && k%2==0)
    {
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
                fout<<a[i][j]<<" ";
            fout<<"\n";
        }
    }
    else if(n%2==0 && k%2==1)
    {
        for(int i=1;i<=n;i+=2)
        {
            for(int j=2;j<=n;j++)
                fout<<a[i][j]<<" ";
            fout<<a[i+1][n]<<"\n"<<a[i][1]<<" ";

            for(int j=1;j<n;j++)
                fout<<a[i+1][j]<<" ";
            fout<<"\n";
        }
    }
    else if(n%2==1 && k%2==0)
    {
        for(int i=2;i<n-2;i+=2)
        {
            int a1=a[i][1];
            for(int j=1;j<n;j++)
                a[i][j]=a[i][j+1];
            int a2=a[i+2][n];
            for(int j=n;j>1;j--)
                a[i+2][j]=a[i+2][j-1];
            a[i+2][1]=a1;
            a[i][n]=a2;
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
                fout<<a[i][j]<<" ";
            fout<<"\n";
        }
    }
    else if(n%2==1 && k%2==1)
    {
        for(int i=1;i<n;i+=2)
        {
            int a1=a[i][1];
            for(int j=1;j<n;j++)
                a[i][j]=a[i][j+1];
            int a2=a[i+1][1];
            a[i+1][1]=a1;
            a[i][n]=a2;
        }
        for(int i=1;i<n;i++)
        {
            for(int j=1;j<n;j++)
                fout<<a[i][j]<<" ";

            fout<<a[n][i]<<"\n";
        }
        for(int i=1;i<=n;i++)
            fout<<a[i][n]<<" ";
        fout<<"\n";
    }

    return 0;
}