Page 18 - MATINF Nr. 1
P. 18

18                                                         D.A. Popescu, C. B˘alc˘au, D. Constantin



              paranteze.in            paranteze.out           Explicat , ie
              2                       3                       p = 2
              2 2 1                                           N = 2, M = 2, k = 1. Avem o paran-
                                                              tezare cu o pereche de paranteze: () s , i
                                                              dou˘a parntez˘ari cu dou˘a perechi de pa-
                                                              ranteze: ()(), (()). Total 3 parantez˘ari.

                Timp maxim de execut , ie: 0.5 secunde/test.

                Memorie total˘a disponibil˘a 32 MB, din care 4 MB pentru stiv˘a.
                                     Doru Constantin, Costel B˘alc˘au, Pites , ti, Gabriel Boroghin˘a, Bucures , ti
                Solut , ie

                Cerint , a 1
            Se genereaz˘a parantez˘arile de adˆancime cel mult k folosind metoda backtracking s , i se incre-
            meanteaz˘a o variabil˘a Nr. Apoi se afis , eaz˘a Nr.
                Cerint , a 2
            Num˘arul de parantez˘ari cu n perechi de paranteze este num˘arul lui Catalan:

                            C(n) = comb(2n, n)/(n + 1) = comb(2n, n) − comb(2n, n − 1).

            Num˘arul c˘autat este Nr = (C(1) + C(2) + ... + C(n)) modulo 60013.

                Combin˘arile din sum˘a se calculeaz˘a cu triunghiul lui Pascal modulo 60013.

                Problema 2 – grupuri
            La sfˆars , itul clasei se contorizeaz˘a situat , iile ˆın care doi elevi s-au ajutat reciproc. Elevii sunt
            codificat , i prin numerele 1, 2, ..., N. Sunt M perechi de elevi care s-au ajutat reciproc. Pentru
                                                                                                   ˆ
            fiecare astfel de pereche se cunoas , te num˘arul de situat , ii ˆın care s-au ajutat reciproc. In funct , ie
            de aceste situat , ii s-au constituit grupuri de elevi. Doi elevi i, j fac parte din acelas , i grup dac˘a
            exist˘a un s , ir de elevi x 1 , x 2 , . . . , x k cu x 1 = i, x k = j s , i (x 1 , x 2 ), (x 2 , x 3 ), . . . , (x k−1 , x k ) s-au
            ajutat reciproc cel put , in o dat˘a.

                Cerint , ˘a
            Cunoscˆand num˘arul de elevi N, num˘arul M de perechi de elevi care s-au ajutat cel put , in o
            dat˘a, precum s , i perechile de elevi ˆımpreun˘a cu num˘arul de situat , ii ˆın care s-au ajutat, se cere:
                1. num˘arul de grupuri;

                2. valoarea maxim˘a a num˘arului total de situat , ii de ajutor reciproc ˆıntr-un grup.

                Date de intrare
            Fis , ierul de intrare grupuri.in cont , ine pe prima linie un num˘ar natural p. Pentru toate testele
            de intrare, num˘arul p poate avea doar valoarea 1 sau 2.
            Pe linia a doua se afl˘a N, M cu spat , iu ˆıntre ele, iar pe urm˘atoarele M linii se afl˘a triplete de
            forma i j k separate prin cˆate un spat , iu, reprezentˆand k situat , ii de ajutor reciproc ˆıntre elevii i
            s , i j.
                Date de ies , ire
            Dac˘a valoarea lui p este 1, se va rezolva numai punctul 1) din cerint , ˘a.
                ˆ
                In acest caz,ˆın fis , ierul de ies , ire grupuri.out se va scrie un singur num˘ar natural reprezentˆand
            num˘arul de grupuri.
                Dac˘a valoarea lui p este 2, se va rezolva numai punctul 2) din cerint , ˘a.
   13   14   15   16   17   18   19   20   21   22   23