Cod sursa(job #310799)

Utilizator miu_valiMiu Valentin miu_vali Data 2 mai 2009 13:38:37
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<stdio.h>
void npkp(int n){
  long i;
  for(i=1;i<=(long)n*n;i++){
	printf("%ld ",i);
	if(i%n==0)
	  printf("\n");}}
void niki(int n){
  long i;
  for(i=1;i<(long)n*n;i++){
	if((i-2)%(n+1)){
	  printf("%ld ",i);
	  if(i%(n+1)==0)
		printf("\n");}}
  for(i=2;i<=(long)n*(n-1);i+=n+1)
	printf("%ld ",i);
  i=(long)n*n;
  printf("%ld ",i);}
void npki(int n,int k){
  long i,j,u;
  for(i=1;i<=n;i++){
	u=0;
	for(j=0;j<=(long)n*(n-1);j+=n){
	  u++;
	  if(i%2&&u==k)
		printf("%ld ",i+j-n+1);
	   else
		if(!(i%2)&&u==k-1)
		  printf("%ld ",i+j+n-1);
		 else
		  printf("%ld ",i+j);}
	printf("\n");}}
void nikp(int n){
  long i,u=0,f;
  int z;
  for(i=1;i<=(long)n*n;i++){
	if((i-2)%(2*n)==0&&i!=2){
	  printf("%ld ",f);
	  u++;}
	if((i-n-1)%(2*n)){
	  printf("%ld ",i);
	  u++;
	  z=1;}
	 else
	  f=i;
	if(u%n==0&&z){
	  printf("\n");
	  z=0;}}}
int main(){
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
int n,k;
scanf("%d%d",&n,&k);
if(n%2)
  if(k%2)
	niki(n);
   else
	nikp(n);
else
  if(k%2)
	npki(n,k);
   else
	npkp(n);
return 0;
}