Cod sursa(job #230952)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 14 decembrie 2008 11:03:05
Problema Tablete Scor 40
Compilator cpp Status done
Runda Algoritmiada 2009, Runda 1, Studenti Marime 1.25 kb
#include<stdio.h>
#define N 101

int n,k;
long a[N][N];
long rst[N*N];

void afis()
{
    for(int i=1;i<=n;i++)
    {
     for(int j=1;j<=n;j++)
       printf("%ld ",a[i][j]);
    printf("\n");
    }
}

int main()
{
    freopen("tablete.in","r",stdin);
    freopen("tablete.out","w",stdout);
    scanf("%d %d",&n,&k);
    long nr=0;
    if(k%2==0)
     {for(int i=1;i<=n;i++)
        for(int j=1;j<=k;j++)
          a[i][j]=++nr;
      for(int i=1;i<=n;i++)
        for(int j=k+1;j<=n;j++)
           a[i][j]=++nr;
     afis();
     }
     else
      {
       for(int i=1;i<=n;i++)
        if(i%2!=0)
         {for(int j=1;j<k;j++)
            a[i][j]=++nr;
          a[i][k]=nr+2;
          }
         else {
               a[i][1]=nr+1;
               nr+=2;
               for(int j=2;j<=k;j++)
                 a[i][j]=++nr;
              }
       if(n%2==0)
        {
        for(int i=1;i<=n;i++)
          for(int j=k+1;j<=n;j++)
           a[i][j]=++nr;
        }
        else {
              a[1][k+1]=nr+1;
              nr=nr+2;
              for(int i=1;i<=n;i++)
                for(int j=k+1;j<=n;j++)
                 if(!(i==1&&j==k+1)) a[i][j]=++nr;
              }
      afis();
      }
    return 0;
}