Cod sursa(job #231369)

Utilizator c_adryanChitescu Adrian c_adryan Data 14 decembrie 2008 12:12:45
Problema Tablete Scor 0
Compilator cpp Status done
Runda Algoritmiada 2009, Runda 1, Clasele 9-10 Marime 1.06 kb
#include <fstream.h>
int n,k;long t[1001];
int main()
{ifstream f;
f.open("tablete.in");

f>>n>>k;

ofstream g;
g.open("tablete.out");

int i,j;
if(k%2==0)
	for(i=1;i<=n;i++)
	       {	for(j=1;j<=n;j++)
			g<<(i-1)*n+j<<' ';
			g<<endl;
	       }
  else
		{register long  p=1,q=1;
		for(i=1;i<=n-2;i++)
		       {   for(j=1;j<=n;j++)
				{
				while(t[q%1000]==q)q++;

				if(j!=k)g<<q<<' ';
				  else if(q%2==0) g<<q<<' ';
					else {
					       p=q;q++;
					       g<<q<<' ';
					       }
				t[q%1000]=q;
				}
			g<<endl;
			q=p;}


		  for(j=1;j<=n-1;j++) //penultima linie
		       {while(t[q%1000]==q)q++;

				if(j!=k)g<<q<<' ';
				  else if(q%2==0) g<<q<<' ';
					else {
					       p=q;q++;
					       g<<q<<' ';
					       }
				t[q%1000]=q;

			      }
		  g<<n*n<<' '<<endl; t[n*n%1000]=n*n;   //ultimul element de pe penultima linie

		  for(j=1,q=p;j<=n;j++)          //ultima linie
		       {	while(t[q%1000]==q)q++;
			g<<q<<' '; t[q]=1;
				     }



			}

f.close();g.close();

return 1;
}