Cod sursa(job #2031131)

Utilizator ana.pintiliciucAna Maria Pintiliciuc ana.pintiliciuc Data 2 octombrie 2017 19:21:21
Problema Tablete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.54 kb
#include <cstdio>
#include <iostream>
using namespace std;

int n,k, a[1001][1001], fr[1001], y,x, j, nr;
int main()
{
    freopen("tablete.in", "r", stdin);
    freopen("tablete.out", "w", stdout);

    scanf("%d %d", &n, &k);
    y=1;
    if(n==k && n%2==0)
    {
        int nr=1;
        while(nr<=n*n)
        {
            printf("%d ", nr);
            if(nr%n==0)
                printf("\n");
            nr++;
        }
    }
    else if(k%2==0)
    {
        for(j=1; j<=n; j++)
        {
            x=y;
            for(int i=x; i<=n*n && nr<n; i++)
            {
                if(nr==k-1 && i%2==1 && fr[i+1]==0)
                {
                    a[j][k]=i+1;
                    y=i;
                    fr[i+1]++;
                    nr++;
                }
                else if(fr[i]==0)
                {
                    nr++;
                    a[j][nr]=i;
                    fr[i]++;
                }
            }
            if(j==n-1)
            {
                fr[a[n-1][n]]--;
                a[n-1][n]=n*n;
                fr[n*n]++;
            }
            nr=0;
        }
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=n; j++)
                printf("%d ", a[i][j]);
            printf("\n");
        }
    }
    else if(n==k && k%2==1)
    {
        int nr=1;
        while(nr<=n*n)
        {
            printf("%d ", 0);
            if(nr%n==0)
                printf("\n");
            nr++;
        }
    }


    return 0;
}