Cod sursa(job #392779)

Utilizator mihai995mihai995 mihai995 Data 8 februarie 2010 11:38:18
Problema Tablete Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
using namespace std;
int main()
{
	int n,sol[1001][1001],k,x=0,i,j;
	ifstream f("tablete.in");
	ofstream o("tablete.out");
	f>>n>>k;
	if (k%2==0)
	{
		for (i=1;i<=n;i++)
			for (j=1;j<=k;j++)
			{
				x++;
				sol[i][j]=x;
			}
		for (i=1;i<=n;i++)
			for (j=k+1;j<=n;j++)
			{
				x++;
				sol[i][j]=x;
			}
		for (i=1;i<=n;i++)
		{
			for (j=1;j<=n;j++)
				o<<sol[i][j]<<" ";
		    o<<"\n";
		}
		return 0;
	}
	if (n%2==0)
	{
		for (i=1;i<=n;i++)
			sol[i][1]=i;
		x=n;
		for (i=1;i<=n;i++)
			for (j=2;j<=k;j++)
			{
				x++;
				sol[i][j]=x;
			}
		for (i=1;i<=n;i++)
			for (j=k+1;j<=n;j++)
			{
				x++;
				sol[i][j]=x;
			}
		for (i=1;i<=n;i++)
		{
			for (j=1;j<=n;j++)
				o<<sol[i][j]<<" ";
		    o<<"\n";
		}
		return 0;
	}		
	x=0;
	for (i=1;i<k;i++)
		for (j=1;j<=n;j++)
		{
			x++;
			sol[j][i]=x;
		}
	x=(k-1)*n;
	sol[1][k]=x;
	sol[1][k+1]=x+2*n;
	for (i=2;i<=n;i++)
	{
		x+=2;
		sol[i][k]=x;
		sol[i][k+1]=x+1;
	}
	x+=2;
	for (i=1;i<=n;i++)
		for (j=k+1;j<=n;j++)
		{
			x++;
			sol[i][j]=x;
		}
	for (i=1;i<=n;i++)
		{
			for (j=1;j<=n;j++)
				o<<sol[i][j]<<" ";
		    o<<"\n";
		}
	return 0;
	return 0;
}