Cod sursa(job #826655)

Utilizator cipriancxFMI - gr143 Timofte Ciprian cipriancx Data 30 noiembrie 2012 23:55:49
Problema Tablete Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.54 kb
#include <iostream>
#include<stdio.h>
#include<stdlib.h>

using namespace std;

int n,k,i,j;
int line1[1002],line2[1002],ln1=2,ln2=2,aux;




int main()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);

scanf("%d %d",&n,&k);

if(k%2==0)
{
for(i=1; i<=n; i++)
{
    for(j=1; j<=n; j++)printf("%d ",n*i-n+j);
    printf("\n");
}
}
else{

if(n%2)
{
line1[1]=1; line2[1]=2;
for(i=3; i<=2*n; i++)if((i%4==3) || (i%4==0)) { line2[ln2]=i; ln2++;} else { line1[ln1]=i; ln1++;}

aux=n*n-n+1;
for(i=1; i<n; i++)printf("%d ",line1[i]);
printf("%d \n",aux); aux++;
for(i=1; i<n; i++)printf("%d ",line2[i]);
printf("%d \n",aux); aux++;

j=3;
while(j<n)
{

  for(i=1; i<n; i++){ printf("%d ",line1[i]+2*n); line1[i]+=2*n; }
   printf("%d \n",aux); aux++;



  for(i=1; i<n; i++){printf("%d ",line2[i]+2*n); line2[i]+=2*n; }
   printf("%d \n",aux); aux++;

  j+=2;

}

j=0;
 for(i=1; i<n; i++)if(i%2){j+=2*n-2; printf("%d ",j); } else { j+=2; printf("%d ",j); }
 printf("%d",n*n);


}

else{

line1[1]=1; line2[1]=2;
for(i=3; i<=2*n-2; i++)if((i%4==3) || (i%4==0)) { line2[ln2]=i; ln2++;} else { line1[ln1]=i; ln1++;}
line1[n]=2*n-1; line2[n]=2*n;

for(i=1; i<=n; i++)printf("%d ",line1[i]);
printf("\n");
for(i=1; i<=n; i++)printf("%d ",line2[i]);
printf("\n");

j=3;
while(j<n)
{

  for(i=1; i<=n; i++){ printf("%d ",line1[i]+2*n); line1[i]+=2*n; }
   printf("\n");
  for(i=1; i<=n; i++){printf("%d ",line2[i]+2*n); line2[i]+=2*n; }
   printf("\n");

  j+=2;

}
}
}
    return 0;
}