Cod sursa(job #827698)

Utilizator negrea.andreiAndrei Negrea negrea.andrei Data 2 decembrie 2012 15:21:48
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<cstdio>

using namespace std;

int main()
{
	int n, m;
	freopen("tablete.in", "r", stdin);
	freopen("tablete.out", "w", stdout);

	scanf("%d %d", &n, &m);

	int noAfterSt = n * m + 1;
	if(m == 1)
	{
      printf("NU\n");
      return 0;
	}

	if(m % 2 == 0)
	{
		for(int i = 1; i <= n; i++)
		{
			for(int j = 1; j <= n; j++)
			{
				if(j > m) 
				{
					printf("%d ", noAfterSt++);
				}
				else
				{
					printf("%d ", (i - 1) * m + j);
				}
			}
			printf("\n");
		}
	}
	else
	{
		int ok = 1;
		if(n % 2 == 1)
		{
			ok = 0;
			noAfterSt--;
		}
		for(int i = 1; i <= n; i++)
		{
			for(int j = 1; j <= n; j++)
			{
				if(j > m) 
				{
					printf("%d ", noAfterSt++);
					if(ok == 0) 
					{
						noAfterSt++;
						ok++;
					}
				}
				else
				{
					if(j == 1  && i % 2 == 0)
					{
						printf("%d ", (i - 1) * m + j - 1);
					}
					else
					  if(j == m && i % 2 == 1)
				 	  {
						  printf("%d ", (i - 1) * m + j + 1);
					  }
					  else
					   printf("%d ", (i - 1) * m + j);
				}
			}
			printf("\n");
		}
	}
	return 0;
}