Cod sursa(job #406895)

Utilizator Robert29FMI Tilica Robert Robert29 Data 1 martie 2010 21:22:13
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <stdio.h>
FILE*f=fopen("tablete.in","r");
FILE*g=fopen("tablete.out","w");
int n,k,i,j,t,a[1001][1001],aux;
int main() {
	fscanf(f,"%d%d",&n,&k);
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			a[i][j]=++t;
	if(n%2==0&&k%2==1)
		for(i=2;i<=n;i+=2){
			aux=a[i-1][1];
			for(j=1;j<n;j++)
				a[i-1][j]=a[i-1][j+1];
			a[i-1][n]=a[i][n];
			for(j=n;j>1;j--)
				a[i][j]=a[i][j-1];
			a[i][1]=aux;
		}
	else
		if(n%2==1&&k%2==0)
			for(i=3;i<=n;i+=2){
				aux=a[i-1][1];
				for(j=1;j<n;j++)
					a[i-1][j]=a[i-1][j+1];
				a[i-1][n]=a[i][1];
				a[i][1]=aux;
			}
		else
			if(n%2==1&&k%2==1){
				for(i=2;i<n;i+=2){
					aux=a[i-1][1];
					for(j=1;j<n;j++)
						a[i-1][j]=a[i-1][j+1];
					a[i-1][n]=a[i][1];
					a[i][1]=aux;
				}
				aux=a[n-1][n];
				a[n-1][n]=a[n][k];
				for(i=k;i>1;i--)
					a[n][i]=a[n][i-1];
				a[n][1]=aux;
			}
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++)
			fprintf(g,"%d ",a[i][j]);
		fprintf(g,"\n");
	}
	fclose(g);
	fclose(f);
	return 0;
}