Cod sursa(job #2163152)

Utilizator alexradu04Radu Alexandru alexradu04 Data 12 martie 2018 16:55:55
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.4 kb
#include <cstdio>
#include <algorithm>
#include <cstdio>
using namespace std;
int v[1001][1001];
int main()
{
    freopen("tablete.in","r",stdin);
    freopen("tablete.out","w",stdout);
    int n,k;
    scanf("%d %d",&n,&k);
    if(k%2==0)
    {
        if(n%2==0)
            for(int i=1; i<=n; i++)
                for(int j=1; j<=n; j++)
                    v[i][j]=n*(i-1)+j;
        else
        {
            int x=0;
            for(int i=1; i<=n; i++)
                for(int j=1; j<=k; j++)
                {
                    x++;
                    v[i][j]=x;
                }
            for(int i=1; i<=n; i++)
                for(int j=k+1; j<=n; j++)
                {
                    x++;
                    v[i][j]=x;
                }
        }
    }
    else
    {
        int x=0;
        for(int i=1; i<=n; i++)
            for(int j=1; j<=k; j++)
            {
                x++;
                v[i][j]=x;
            }
        for(int i=1; i<n; i+=2)
            swap(v[i][k],v[i+1][1]);
        for(int i=1; i<=n; i++)
            for(int j=k+1; j<=n; j++)
            {
                x++;
                v[i][j]=x;
            }
        if(n%2==1)
            swap(v[n][k],v[1][k+1]);
    }
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=n; j++)
            printf("%d ",v[i][j]);
        printf("\n");
    }
    return 0;
}