Cod sursa(job #239476)

Utilizator raica_cristiraica dumitru cristian raica_cristi Data 4 ianuarie 2009 21:04:21
Problema Tablete Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.33 kb
#include<stdio.h>
int i,k,este[1000],a[1000][1000],p,last=1,aux,mut;
int main ()
{este[0]=1;
    int n,m;
    freopen("tablete.in","r",stdin);
    freopen("tablete.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
    for(k=1;k<=n;k++)
    {for(p=1;p<=n*n;p++)
    if(este[p]==0 && p>a[i][k-1])
     { if(k!=m)
                {
                  /*   if(k==n && i>1)
                     {aux=a[i-1][n];
                     a[i-1][n]=p;
                     a[i][k]=aux;
                     este[p]=1;
                     break;
                     }
                     else*/
                     {
                     este[p]=1;
                a[i][k]=p;
                  break;}
                  }
                  else
                  if(p%2==0)
                  {
                            este[p]=1;
                            a[i][k]=p;
                            break;
                            }}
                            }
                  for(i=1;i<=n*n;i++)
                  if(este[i]==0)
              {  p=i;
              break;
              }
        /*          for(i=n;i>=1;i--)
                  for(k=n-1;k>=1;k--)
                  { printf("%d %d\n",i,k);
                if(p<a[i][k+1] && p>a[i][k-1])// && a[i][k]>a[n][n-1])
                               {a[n][n]=a[i][k];
                                   a[i][k]=p;
                   for(i=1;i<=n;i++)
          {        for(k=1;k<=n;k++)
          printf("%d ", a[i][k]);
          printf("\n");
          }return 0;
          }
          else
          printf("nu %d %d\n",i,k);
          }
     //     for(i=1;i<=1000;i++)
     ///     printf("%d",este[p]);
       */i=a[n-1][n];
       a[n-1][n]=p;
       for(k=n;k>=1;k--)
       {
                        if(a[n][k-1]<i && a[n][k+1]>i)
                        {
                                       a[n][k+1]=a[n][k];
                                       a[n][k]=i;
                                       break;
                                       }
                                       else   a[n][k+1]=a[n][k];
                                       }
          for(i=1;i<=n;i++)
          {        for(k=1;k<=n;k++)
          printf("%d ", a[i][k]);
          printf("\n");
          }
            return 0;
          }