Cod sursa(job #804711)

Utilizator geniucosOncescu Costin geniucos Data 30 octombrie 2012 10:29:07
Problema Tablete Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<cstdio>
using namespace std;
int nr,n,k,i,j,a[1003][1003],ap[1000003];
int main()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d %d",&n,&k);
if(n%2==0&&k%2==0)
{
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
            printf("%d ",(i-1)*n+j);
        printf("\n");
    }
}
else
if(k%2==0)
{
    nr=0;
    for(i=1;i<=n;i++)
        for(j=1;j<k;j++)
        {
            nr++;
            a[i][j]=nr;
            ap[a[i][j]]++;
        }
    nr--;
    for(i=1;i<=n;i++)
    {
        nr=nr+2;
        a[i][k]=nr;
        ap[a[i][k]]++;
    }
    nr=1;
    for(i=1;i<=n;i++)
        for(j=k+1;j<=n;j++)
        {
            while(ap[nr]==1) nr++;
            a[i][j]=nr;
            ap[nr]=1;
        }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
}
return 0;
}