Pagini recente » Cod sursa (job #1525119) | Cod sursa (job #715188) | Cod sursa (job #1280196) | Cod sursa (job #216313) | Cod sursa (job #1896634)
#include <stdio.h>
int main() {
FILE *fin, *fout;
int i, j, n, k, st, m , c, rez,a,st2;
fin = fopen( "tablete.in","r" );
fout = fopen( "tablete.out", "w" );
fscanf(fin,"%d%d",&n, &k);
fclose(fin);
c=0;
st2=0;
rez=0;
m=1;
a=n*(n-1)+k;
if(a%2!=0) { // testez daca nr de pe ultima linie colana k este 0
//printf("Diferit de 0 numarul este %d \n",a);
st2++;
}
for(i=0;i<n;i++) {
for(j=0;j<n;j++) {
st=0;
c++;
m=c;
if(rez!=0 && j==0) { // pun numarul din rezerva in prima pozitie a liniei
m=rez;
rez=0;
//printf ("Trecere");
st++;
c--;
}
if(j==k-1 && c%2!=0 && st==0) { // daca nr din coloana k nu e par il pun
rez=c; // in variabila rez si maresc cu o unitate
c++;
m=c;
}
if(j==n-1 && i==n-2 && st2!=0) { // daca nr din ultima linie si coloana k
m=n*n; // este impar introduc numarul n patrat
c--; // pe penultima linie ultima pozitie
}
fprintf(fout,"%d ",m);
//m=c;
//c++;
}
fprintf(fout,"\n");
// printf(" rezerva este %d \n", rez);
}
return 0;
}