Cod sursa(job #368809)

Utilizator BiterBiter Marian Biter Data 25 noiembrie 2009 22:42:58
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<cstdio>
#include<iostream>

using namespace std;
const int MAX=1001;

int main()
{

     int *p[MAX];
	 
     int i;    
	 for(i=0;i<=1000;i++) p[i]=new int[MAX];
	 FILE *in=fopen("tablete.in","r"),
		  *out=fopen("tablete.out","w");
	 int n,k;
	 fscanf(in,"%d%d",&n,&k);
     int j;
	 bool ok=true;
	 unsigned long int cont=n*n;

	 for (i=n;i>=1;i--)
	 {
		 for (j=n;j>=k;j--)
		 {
			
			 if (j==k) 
			 {
				 if (cont % 2 == 0) 
				 {
					 p[i][j]=cont;
					 cont--;
				 }
				 else
				 {
					 p[i][j]=cont-1;
					 ok=false;
				 }
			 }
			 else
			 {
				 p[i][j]=cont;
				 if (!ok) {cont-=2; ok=!ok;} else cont--;
			 }
		 }
	 }
	 
	int c=1;
	 for(i=1;i<=n;i++)
	 {
		 for(j=1;j<k;j++)
		 {
			 p[i][j]=c++;
		 }
	 }
     if (!ok) p[n][k-1]=cont;
	 for(i=1;i<=n;i++)
	 {
		 for(j=1;j<=n;j++)
		 {
			 fprintf(out,"%d ",p[i][j]);
		 }
		 fprintf(out,"\n");
	 }

	 return 0;


}