Cod sursa(job #1896634)

Utilizator dragos.boncanBoncan Dragos Eduard Gabriel dragos.boncan Data 28 februarie 2017 20:08:50
Problema Tablete Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 1.43 kb
#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;
}