Pagini recente » Borderou de evaluare (job #2153485) | Borderou de evaluare (job #2078051) | Borderou de evaluare (job #1909063) | Borderou de evaluare (job #2094920) | Cod sursa (job #241255)
Cod sursa(job #241255)
#include <stdio.h>
int main()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
int n,k,salt=0,a[100005],i,m=1,exc,t,lim,exceptie;
scanf("%d%d",&n,&k);
exc=k;
for (i=1; i<=n*n; i++)
{
//m++;
if (i==exc)
if (m%2==0)
{
a[i]=m++;
exc+=n;
}
else
{
salt=m++;
a[i]=m++;
exc+=n;
}
else
{
if (i%n==1 && salt)
a[i]=salt;
else
a[i]=m++;
}
}
if (a[n*n]>n*n)
{
t=a[n*(n-1)];
a[n*(n-1)]=salt;
for (i=n*(n-1)+1; i<=n*n-1; i++)
if (a[i]>t)
{
a[i]=t;
lim=i;
break;
}
for (i=n*(n-1)+1; i<=n*n; i++)
if ((i-k)%n==0)
{
exceptie=i;
break;
}
for (i=lim+1; i<=exceptie; i++)
a[i]=a[i-1]+1;
a[exceptie+1]=a[exceptie]+2;
for (i=exceptie+2; i<=n*n; i++)
a[i]=a[i-1]+1;
}
for (i=1; i<=n*n; i++)
{
printf("%d ",a[i]);
if (i%n==0)
printf("\n");
}
return 0;
}
/*
Sol corecta ex:
1 2 4 5
3 6 8 9
7 10 12 15
11 13 14 16
*/