Cod sursa(job #2001268)

Utilizator victorv88Veltan Victor victorv88 Data 16 iulie 2017 10:57:32
Problema Tablete Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.92 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("tablete.in");
ofstream g("tablete.out");

int a[1005][1005];
int n, k, nr=1, x;

void aranjare()
{
    if (k%2==0)
    {
        for (int i=1; i<=n; i++)
        {
            for (int j=1; j<=k; j++)
            {
                a[i][j]=nr;
                nr++;
            }
        }
        for (int i=1; i<=n; i++)
        {
            for (int j=k+1; j<=n; j++)
            {
                a[i][j]=nr;
                nr++;
            }
        }
    }
    else if (n%2==0 && k%2==1)
    {
        for (int i=1; i<=n; i++)
        {
            for (int j=1; j<=n; j++)
            {
                a[i][j]=nr;
                nr++;
            }
        }
        for (int i=1; i<=n-2; i++)
        {
            x=a[i][k];
            for (int j=k; j<n; j++)
            {
                a[i][j]=a[i][j+1];
            }
            a[i][n]=a[i+1][1];
            a[i+1][1]=x;
        }
        x=a[n-1][n-1];
        a[n-1][n-1]=a[n-1][n];
        a[n-1][n]=a[n][n];
        for (int j=n; j>1; j--)
            a[n][j]=a[n][j-1];
        a[n][1]=x;
    }
   /* else if (n%2==1 && k%2==1)
    {
        for (int i=1; i<=n; i++)
        {
            for (int j=1; j<=n; j++)
            {
                a[i][j]=nr;
                nr++;
            }
        }
        for (int i=1; i<n; i++)
        {
            if (a[i][k]%2==1)
            {
                x=a[i][k];
                for (int j=k; j<n; j++)
                {
                    a[i][j]=a[i][j+1];
                }
                a[i][n]=a[i+1][0];
                a[i+1][0]=x;
            }
        }
    }*/
    for (int i=1; i<=n; i++)
    {
        for (int j=1; j<=n; j++)
            g << a[i][j] <<' ';
        g << endl;
    }

}

int main()
{
    f >> n >>k;
    aranjare();
    return 0;
}