Cod sursa(job #245830)

Utilizator f.v.antonFlavius Anton f.v.anton Data 18 ianuarie 2009 23:37:17
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include <iostream.h>
#include <fstream.h>
int main()
{
	fstream f("tablete.in",ios::in),g("tablete.out",ios::out);
	long int i,j,v[1020],p;
	int n,k;
	f>>n>>k; p=1;
	if(n%2==0&&k%2==0)
	{
		for(i=1;i<=n;i++)
		{	for(j=1;j<=n;j++)
			    {	g<<p<<" "; p++; }
			g<<'\n';
		}
	}
	else
	if(n%2==0&&k%2!=0)
	{       long val,temp,val2,rem=1; p=2;
		for(i=1;i<=n;i++)
		{	for(j=1;j<=n;j++)
			{
				if(i==n-1&&j==n)
				     {	val=p++; g<<n*n-(n-k)<<" ";}
				else
				if(i==n&&j==2)
				{	g<<val<<" "; }
				else
				if(j==1)
					g<<rem<<" ";
				else
				if(j==k&&i!=n)
				   {   rem=p; p++; g<<p++<<" ";}

				else
				if(p==n*n-n+k){ g<<++p<<" ";p++;}
				else
				 g<<p++<<" ";
			}
			g<<'\n';
		}
	}
	else
	if(n%2==1&&k%2==0)
	{       long val,temp,val2,rem=1; p=2;
		for(i=1;i<=n;i++)
		{	for(j=1;j<=n;j++)
			{
				if(j==1&&i%2==1)
					g<<rem<<" ";
				else
				if(j==k&&i!=n&&i%2==0)
				   {   rem=p; p++; g<<p++<<" ";}

				else

				 g<<p++<<" ";
			}
			g<<'\n';
		}
	}
	else
	if(n%2==1&&k%2!=0)
	{       long val,temp,val2,rem=1; p=1;
		for(i=1;i<n;i++)
		{	for(j=1;j<=n;j++)
			{
				if(i==n-1&&j==n)
				     {	val=p++; g<<n*n-(n-k)<<" ";}
				else
				if(j==1&&i%2==0&&i!=1)
					g<<rem<<" ";
				else
				if(j==k&&i!=n&&i%2!=0)
				   {   rem=p; p++; g<<p++<<" ";}

				else

				 g<<p++<<" ";
			}
			g<<'\n';
		} p=val;
		for(i=1;i<=n+1;i++)
			if(p!=n*n-n+k)
				g<<p++<<" ";
			else
			p++;



	}

	 g.close();

	return 0;
}