Cod sursa(job #238971)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 3 ianuarie 2009 19:08:03
Problema Tablete Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
int main()
{
	freopen("tablete.in","r",stdin);
	freopen("tablete.out","w",stdout);
	int n,k,salt=0,a[1000005],i,m=1,exc,t;
	scanf("%d%d",&n,&k);
	exc=k;
	for (i=1; i<=n*n; i++)
	{
		//m++;
	    if (i==exc)
			if (m%2==0)
			{
				a[i]=m++;
				exc+=n;
			}
			else
			{
				salt=m++;
				a[i]=m++;
				exc+=n;
			}
		else
		{
			if (i%n==1 && salt)
				a[i]=salt;
			else
				a[i]=m++;
		}
	}
	if (a[n*n]>n*n)
	{
		t=a[n*(n-1)];
		a[n*(n-1)]=salt;
		a[n*(n-1)+2]=t;
		for (i=n*(n-1)+3; i<=n*n-1; i++)
			a[i]=t++;
		a[n*n]=n*n;
	}
	for (i=1; i<=n*n; i++)
	{
		printf("%d ",a[i]);
		if (i%n==0)
			printf("\n");
	}
	return 0;
}
/*
Sol corecta ex:
1 2 4 5
3 6 8 9
7 10 12 15
11 13 14 16
*/