Cod sursa(job #243905)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 14 ianuarie 2009 11:06:13
Problema Tablete Scor 90
Compilator c Status done
Runda Arhiva de probleme Marime 2.27 kb
#include <stdio.h>      
     
int A[1005][1005];        
     
int main()      
{      
    int N,K;   
    freopen("tablete.in","r",stdin);      
    scanf("%d %d", &N,&K);      
    int p;   
    if (N%2==0 && K%2==1 && (K/2)%2==0)   
            p=(N*K)-(N+(K/2)+2);   
      else  
      if (N%2==1 && K%2==1 && (K/2)%2==0)   
            p=(N*K)-(N+(K/2));   
      else p=(N*K)-(N+(K/2)+1);   
    int i;   
    int frecv[1000000];   
    for (i=1;i<=N;++i)      
         {      
           A[i][K]=p;      
           frecv[p]=1;   
           p+=2;      
         }     
    int j,nr=1;   
    if (K%2==0)   
         {   
                for (i=1;i<=N;++i)   
                     for (j=1;j<=N;++j)   
                          {   
                            A[i][j]=nr;   
                            nr++;   
                          }   
         }   
      else  
      {            
    for (i=1;i<=N;++i)   
          for (j=1;j<K;++j)   
            {   
                   if (frecv[nr]==0)   
                        {   
                         A[i][j]=nr;   
                         frecv[nr]=1;   
                        }   
                   else  
                   {   
                    while (frecv[nr]==1)   
                   nr++;   
                   A[i][j]=nr;   
                   frecv[nr]=1;   
                   }   
                 nr++;     
                 }   
              nr++;      
              for (i=1;i<=N;++i)      
              for (j=K+1;j<=N;++j)   
              {      
               if (frecv[nr]==0)   
                        {   
                         A[i][j]=nr;   
                         frecv[nr]=1;   
                        }   
                   else  
                   {   
                   while (frecv[nr]==1)   
                   nr++;   
                   A[i][j]=nr;   
                   frecv[nr]=1;   
                   }   
                nr++;      
              }      
        }       
     freopen("tablete.out","w",stdout);   
     for (i=1;i<=N;++i)      
     {      
      for (j=1;j<=N;++j)      
      printf("%d ", A[i][j]);      
      printf("\n");      
     }      
return 0;      
}