Cod sursa(job #1957330)

Utilizator refugiatBoni Daniel Stefan refugiat Data 7 aprilie 2017 14:48:10
Problema Tablete Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.84 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream si("tablete.in");
ofstream so("tablete.out");
int v[1005][1005];
int main()
{
    int n,k;
    si>>n>>k;
    if(k%2==0)
    {
        for(int i=0;i<n;++i)
        {
            for(int j=1;j<=n;++j)
                so<<i*n+j<<' ';
            so<<'\n';
        }
        return 0;
    }
    if(n%2==0)
    {
        int el=1;
        for(int i=1;i<=n;i+=2)
        {
            for(int j=1;j<k;++j)
            {
                v[i][j]=el++;
            }
            v[i][k]=el+1;
            v[i+1][1]=el;
            el+=2;
            for(int j=2;j<=k;++j)
            {
                v[i+1][j]=el++;
            }
        }
        for(int i=1;i<=n;++i)
        {
            for(int j=k+1;j<=n;++j)
                v[i][j]=el++;
        }
        for(int i=1;i<=n;++i)
        {
            for(int j=1;j<=n;++j)
                so<<v[i][j]<<' ';
            so<<'\n';
        }
    }
    else
    {
        int el=1;
        for(int i=1;i<n;i+=2)
        {
            for(int j=1;j<k;++j)
            {
                v[i][j]=el++;
            }
            v[i][k]=el+1;
            v[i+1][1]=el;
            el+=2;
            for(int j=2;j<=k;++j)
            {
                v[i+1][j]=el++;
            }
        }
        for(int j=1;j<k;++j)
        {
            v[n][j]=el++;
        }
        v[n][k]=el+1;
        v[1][k+1]=el;
        el+=2;
        for(int j=k+2;j<=n;++j)
        {
            v[1][j]=el++;
        }

        for(int i=2;i<=n;++i)
        {
            for(int j=k+1;j<=n;++j)
                v[i][j]=el++;
        }
        for(int i=1;i<=n;++i)
        {
            for(int j=1;j<=n;++j)
                so<<v[i][j]<<' ';
            so<<'\n';
        }
    }
    return 0;
}