Cod sursa(job #232670)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 15 decembrie 2008 22:40:19
Problema Tablete Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 1.35 kb
#include <stdio.h>
int N,K,start,left;
int main(){
    int i,j;
    freopen("tablete.in","r",stdin);
    freopen("tablete.out","w",stdout);
    scanf("%d %d",&N,&K);
    start=1;left=0;
    for (i=1;i<=N-2;++i){
     j=1;
     if (left>0){
        printf("%d ",left);
        left=0;
        j=2;}
     for (;j<=N;++j)
       if (j!=K) printf("%d ",start++);
       else if (start&1)
         {
          left=start++;
          printf("%d ",start++);
         }
       else printf("%d ",start++);
     printf("\n");
     }
     
     j=1;
     if (left>0){
        printf("%d ",left);
        left=0;
        j=2;}
     for (;j<N;++j)
       if (j!=K) printf("%d ",start++);
       else if (start&1)
         {
          left=start++;
          printf("%d ",start++);
         }
       else printf("%d ",start++);
    j=0;
    if (left>0) j=1;
    if ((start+K-j)&1)
     {
      printf("%d\n",start+K-j);
      int aux=start+K-j;
      j=1;
      if (left>0) {printf("%d ",left);
                   j=2;}       
      for (;j<=N;++j){
          if (start==aux) ++start;          
           printf("%d ",start++);}
     }
    else
     {
      printf("%d\n",start++);
      j=1;
      if (left>0) {printf("%d ",left);
                   j=2;}       
      for (;j<=N;++j) printf("%d ",start++);
     }
    return 0;
}