Cod sursa(job #966312)

Utilizator geniucosOncescu Costin geniucos Data 25 iunie 2013 18:36:18
Problema Tablete Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.62 kb
#include<cstdio>
using namespace std;
int nr,i,j,n,k,a[1013][1013];
int main()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d",&n);
scanf("%d",&k);
if(k%2==0)
{
    if(n%2==0)
    {
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                nr++;
                printf("%d ",nr);
            }
            printf("\n");
        }
        return 0;
    }
    for(i=1;i<=n;i++)
        for(j=1;j<k;j++)
        {
            nr++;
            a[i][j]=nr;
        }
    for(i=1;i<=n;i++)
        a[i][k]=nr+2*i-1;
    for(i=1;i<=n;i++)
        a[i][k+1]=nr+2*i;
    nr+=2*n;
    for(i=1;i<=n;i++)
        for(j=k+2;j<=n;j++)
        {
            nr++;
            a[i][j]=nr;
        }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
}
else
{
    if(n%2==0)
    {
        for(i=1;i<=n/2;i++)
        {
            for(j=1;j<k;j++)
            {
                nr++;
                a[(i<<1)-1][j]=nr;
            }
            a[(i<<1)-1][k]=nr+2;
            a[i<<1][1]=nr+1;
            nr+=2;
            for(j=2;j<=k;j++)
            {
                nr++;
                a[i<<1][j]=nr;
            }
        }
        for(i=1;i<=n;i++)
            for(j=k+1;j<=n;j++)
            {
                nr++;
                a[i][j]=nr;
            }
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
                printf("%d ",a[i][j]);
            printf("\n");
        }
        return 0;
    }
}
return 0;
}