Cod sursa(job #231401)

Utilizator ConsstantinTabacu Raul Consstantin Data 14 decembrie 2008 12:19:52
Problema Tablete Scor 40
Compilator cpp Status done
Runda Algoritmiada 2009, Runda 1, Clasele 5-8 Marime 1.13 kb
#include<fstream.h>
int i,aux,j,k,l,m,n,p,x[100][100];
ifstream f("tablete.in");
ofstream g("tablete.out");
void initializare(){
int i,j,m=1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
	x[i][j]=m++;
}
void afisare(){
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
	g<<x[i][j]<<" ";
g<<'\n';}
}
int main(){
f>>n>>k;
initializare();
if(n%2==0&&k%2==0)
	{afisare();
	f.close();
	g.close();
	return 0;}
else
if(n%2==0&&k%2==1){
aux=x[1][k];
for(i=1;i<n;i++)
	{
	if(x[i][k]%2!=0){
	x[i-1][n]=x[i][k];
		for(j=k;j<n;j++)
			x[i][j]=x[i][j+1];
		x[i][n]=x[i+1][1];
		}
	}
x[n-1][n]=x[n][k];
for(j=k;j>=1;j--)
	x[n][j]=x[n][j-1];
x[n][1]=aux;
}
else
if(k%2==1&&n%2==1)
	{aux=x[1][k];
	for(i=1;i<n;i++)
		if(x[i][k]%2==1)
			{if(i!=1)
			x[i-2][n]=x[i][k];
			for(j=k;j<n;j++)
				x[i][j]=x[i][j+1];}
		x[n-2][n]=x[n][k];
		for(j=k;j>=1;j--)
			x[n][j]=x[n][j-1];
                x[n][1]=aux;
	}
else
if(k%2==0&&n%2==1)
	{for(i=1;i<=n;i++)
		if(x[i][k]%2!=0)
		{aux=x[i][k];
		for(j=k;j<n;j++)
			x[i][j]=x[i][j+1];
		x[i][n]=x[i+1][1];
		x[i+1][1]=aux;
		}
	}


afisare();
f.close();
g.close();
return 0;}