Cod sursa(job #230576)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 14 decembrie 2008 09:41:18
Problema Tablete Scor 100
Compilator cpp Status done
Runda Algoritmiada 2009, Runda 1, Clasele 5-8 Marime 0.73 kb
#include<stdio.h>
long n,k,s,u,i,j,a[1005][1005],ss,f;
void read()
{
 freopen("tablete.in","r",stdin);
 freopen("tablete.out","w",stdout);
 scanf("%ld%ld",&n,&k);
}
void rez()
{
 s=0;
 u=1000000000;
 for(i=1;i<=n;++i)
    {
     for(j=1;j<k;++j)
        {++s;
         if(s>u&&s%2==0&&a[i-1][k]==0){a[i-1][k]=s;++s;}
         a[i][j]=s;}
     u=a[i][k-1];
    }
 ++s;
 ss=s;
 while(s%2){++s;f=1;}
 if(a[n][k]==0)a[n][k]=s;
 for(i=1;i<=n;++i)
    for(j=k+1;j<=n;++j)
       if(f){a[i][j]=ss;f=0;}
        else {++s;a[i][j]=s;}
}
void write()
{
 for(i=1;i<=n;++i)
   {
    for(j=1;j<=n;++j)
       printf("%ld ",a[i][j]);
    printf("\n");
   }
}
int main()
{
 read();
 rez();
 write();
 return 0;
}