Cod sursa(job #1590025)

Utilizator armandpredaPreda Armand armandpreda Data 4 februarie 2016 17:28:23
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.13 kb
#include <fstream>

using namespace std;

ifstream cin("tablete.in");
ofstream cout("tablete.out");

int n, k;
int main()
{
    cin>>n>>k;
    if(k%2==0)
        if(n%2==0)
            for(int i=1; i<=n; ++i)
            {
                for(int j=1; j<=n; ++j)
                    cout<<(i-1)*n+j<<' ';
                cout<<'\n';
            }
        else
        {
            cout<<1<<' ';
            for(int i=2; i<=n; i+=2)
                cout<<i<<' ';
            for(int i=2; i<=n; i+=2)
                cout<<i*n<<' ';
            cout<<'\n';
            for(int i=2; i<=n; ++i)
            {
                if(i%2==1)
                    for(int j=1; j<=n; ++j)
                        cout<<(i-1)*n+j<<' ';
                else
                {
                    cout<<i+1<<' ';
                    for(int j=2; j<=n; ++j)
                        cout<<(i-1)*n+j-1<<' ';
                }
                cout<<'\n';
            }
        }
    else
        if(n%2==0)
        {
            for(int i=1; i<=n-1; ++i)
            {
                for(int j=1; j<=n; ++j)
                    if(i==1 and j==n)
                        cout<<n*n<<' ';
                    else
                        cout<<(i-1)*n+j+1<<' ';
                cout<<'\n';
            }
            cout<<1<<' '<<n+1<<' ';
            for(int i=3; i<=n; ++i)
                cout<<(n-1)*n+i-1<<' ';
        }
        else
        {
            for(int i=1; i<n; ++i)
                cout<<i+1<<' ';
            cout<<n*n<<'\n';
            for(int i=2; i<n; ++i)
            {
                if(i%2==0)
                    for(int j=1; j<=n; ++j)
                        cout<<(i-1)*n+j<<' ';
                else
                    for(int j=1; j<=n; ++j)
                        if(j==n)
                            cout<<(i+1)*n+1;
                        else
                            cout<<(i-1)*n+j+1<<' ';
                cout<<'\n';
            }
            cout<<1<<' '<<2*n+1<<' ';
            for(int i=3; i<=n; ++i)
                cout<<(n-1)*n+i-1<<' ';
        }
    return 0;
}