Cod sursa(job #233982)

Utilizator Andrei200Andrei200 Andrei200 Data 19 decembrie 2008 20:19:15
Problema Tablete Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.63 kb
#include <stdio.h>   
#include <string.h>   
  
int frecv[1000000],nr,A[1000][1000],i,j,N,K,par[500],p;   
  
int main()   
{   
    freopen("tablete.in","r",stdin);   
    scanf("%d %d", &N,&K);   
    //memset(frecv,0,sizeof(frecv));   
    nr=0;   
    for (i=2;i<=1<<N;++i)   
          if (i%2==0)   
              {   
                    nr++;   
                    par[nr]=i;   
              }   
    p=((N*K)/2)-N+1;
    for (i=1;i<=N;++i)   
         {   
           A[i][K]=par[p];   
           frecv[par[p]]=1;   
           p++;   
         }   
  nr=1;
    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++;
               }
              //p=2*p-1;
              p=nr;   
    for (i=K+1;i<=N;++i)   
              for (j=1;j<=N;++j)   
              {   
               A[j][i]=p;   
               frecv[p]=1;   
               p++;   
              }   
         
       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;   
}