Cod sursa(job #231589)

Utilizator shnakoVlad Schnakovszki shnako Data 14 decembrie 2008 12:41:52
Problema Tablete Scor 20
Compilator cpp Status done
Runda Algoritmiada 2009, Runda 1, Clasele 5-8 Marime 1.3 kb
#include <fstream.h>
ifstream f("tablete.in");
ofstream g("tablete.out");
long j, n, i, k, a[25000], v[500][500], t;
int main()
{
f>>n>>k;
for (i=1;i<=n;i++)
	for (j=1;j<=n;j++)
   	v[i][j]=0;
v[n][n]=n*n;
for (i=1;i<=n*n;i++)
	a[i]=i;
a[n*n]=0;
for (i=n;i>0;i--)
	for (j=n;j>0;j--)
   	{
      if (j==k)
         {
      	for (t=n*n;;t--)
         	if (a[t]%2==0&&a[t]!=0)
            	{
               v[i][j]=a[t];
               a[t]=0;
               break;
               }
         }
      else
      	if (j>k)
         {
         for (t=n*n;v[i][j]!=n*n;t--)
              	if (a[t]!=0)
              		{
              	 	v[i][j]=a[t];
              	 	a[t]=0;
               	break;
               	}
         }
         else
         	for (t=n*n;v[i][j]!=n*n;t--)
            	if (a[t]!=0&&a[t]<v[i][j+1])
               	{
                  v[i][j]=a[t];
                  a[t]=0;
                  break;
                  }
      if (i==1&&j==2)
         {
      	for (t=1;t<=n*n;t++)
         	if (a[t]!=0)
      			break;
         if (a[t]>v[1][2])
         	{
            v[1][1]=a[t];
            break;
            }
         }
      }
for (i=1;i<=n;i++)
	{
   for (j=1;j<=n;j++)
   	g<<v[i][j]<<" ";
   g<<"\n";
	}
f.close();
g.close();
return 0;
}