Fişierul intrare/ieşire:pdm.in, pdm.outSursăad-hoc
AutorDin FolclorAdăugată demihai995Andreescu Mihai mihai995
Timp execuţie pe test1.5 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Pdm

Se dă un produs matricial M = M1M2...Mn. Cum înmulţirea matricelor este asociativă, toate parantezările conduc la acelaşi rezultat. Însă, numărul total de înmulţiri scalare al produsului matricial poate să difere substanţial în funcţie de ordinea efectuării calculelor, ordine dată de paranteze. Dimensiunile celor n matrici se dau sub forma unui şir d astfel încât perechea (di-1, di) reprezintă dimensiunile matricii Mi.

Cerinta

Se cere să se minimizeze numărul total de înmulţiri scalare al produsului matricial M, precum şi o parantezare care dă acest număr de produse scalare.

Date de intrare

Fişierul de intrare pdm.in conţine pe prima linie un număr natural n, reprezentând numărul matricelor. Pe următoarea linie se găsesc n + 1 numere naturale, reprezentând valorile şirului d.

Date de ieşire

În fişierul de ieşire pdm.out se va găsi un singur număr natural egal cu valoarea minimă a numărului total de înmulţiri scalare a produsului matricial M şi parantezarea optimă corespunzătoare acestuia.

Formatul afişării unei parantezări este următorul:
>dacă parantezarea conţine un factor, se va afişa doar acesta
>dacă parantezarea conţine doi factori, va fi pusă între paranteze, iar factorii ei afişaţi pe rând

Restricţii

  • 1 ≤ N ≤ 500
  • 0 ≤ d ≤ 1000
  • În cazul în care există mai multe soluţii, de exemplu A şi B, se va afişa parantezarea care ar realiza primele k înmulţiri între aceleaşi matrice , îar a k+1-a înmulţire in ordine inversa, la o matrice de ordin mai mic.
  • Pentru afişarea corectă doar a numărului de înmulţiri scalare, se acordă 40% din punctaj.

Exemplu

pdm.inpdm.out
4
13 5 89 3 34
2856
((1*(2*3))*4)
Trebuie sa te autentifici pentru a trimite solutii. Click aici