Pagini recente » Cod sursa (job #2152843) | Monitorul de evaluare | Cod sursa (job #1761424) | Cod sursa (job #373379) | Cod sursa (job #406876)
Cod sursa(job #406876)
#include<stdio.h>
int i,j,m,n,k,v[1001][1001],nr,aux;
int main(){
FILE *f=fopen("tablete.in","r");
FILE *g=fopen("tablete.out","w");
fscanf(f,"%d %d",&n,&k);
if((k==n)||(k==1))
fprintf(g,"0");
else{
nr=1;
if((k%2==0)&&(n%2==0)){
for(i=1;i<=n;i++){
for(j=1;j<=n;j++,nr++)
fprintf(g,"%d ",nr);
fprintf(g,"\n");
}
}
else{
nr=1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++,nr++)
v[i][j]=nr;
if((k%2==1)&&(n%2==0))
for(i=1;i<=n;i+=2)
for(j=1;j<=n;j++)
if(j==k){
aux=v[i][1];
for(m=2;m<=n;m++)
v[i][m-1]=v[i][m];
v[i][n]=v[i+1][n];
for(m=n;m>=1;m--)
v[i+1][m]=v[i+1][m-1];
v[i+1][1]=aux;
}
if((k%2==1)&&(n%2==1)){
for(i=1;i<n;i+=2)
for(j=1;j<=n;j++,nr++)
if(j==k){
aux=v[i][1];
for(m=1;m<=n;m++)
v[i][m]=v[i][m+1];
v[i][n]=v[i+1][1];
v[i+1][1]=aux;
}
aux=v[n-1][n];
v[n-1][n]=v[n][n];
for(i=n;i>1;i--)
v[n][i]=v[n][i-1];
v[n][1]=aux;
}
if((k%2==0)&&(n%2==1))
for(i=1;i<n;i+=2)
for(j=1;j<=n;j++)
if(j==k){
aux=v[i][n];
v[i][n]=v[i+1][n];
for(m=n;m>=1;m--)
v[i+1][m]=v[i+1][m-1];
v[i+1][1]=aux;
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++,nr++)
fprintf(g,"%d ",v[i][j]);
fprintf(g,"\n");
}
}
}
fclose(f);
fclose(g);
return 0;
}