.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » triunghi2

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
triunghi2


Timp maxim de execuţie / test:
0.6s
Memorie totala disponibilă / stivă:
20MB / 2MB

Se consideră o placă de dimensiune n, de forma unui triunghi echilateral, ale cărui laturi sunt denumite A, B şi C şi au lungimea egală cu n. Pe laturile A şi B sunt marcate câte n-1 puncte care împart laturile în n porţiuni egale. Din fiecare punct marcat de pe latura A se trasează un segment paralel cu latura B, iar din fiecare punct marcat de pe latura B se trasează un segment paralel cu latura A. Celălalt capăt al fiecărui segment trasat se află pe latura C. În felul acesta, placa triunghiulară conţine n•(n+1)/2 plăci elementare (care nu sunt traversate de niciun segment). Astfel, pe o placă triunghiulară de dimensiune n=4, ca în figură, avem 6 plăci elementare în formă de romb şi 4 în formă de triunghi (cele cu o latură pe latura C a plăcii triunghiulare).
Se doreşte împărţirea triunghiului în plăci elementare cu cost total minim. Dacă n=1 costul împărţirii este 0. Pentru n ≥ 2 singura operaţie permisă este tăierea de la un capăt la altul de-a lungul unui segment de lungime maximă, obţinându-se un triunghi de dimensiune n-1 şi o bandă. Banda va fi împărţită în plăci elementare prin tăieri de-a lungul segmentelor de lungime 1 ce separă plăcile elementare care o compun. Triunghiul obţinut va fi împărţit mai departe în plăci elementare folosind în mod repetat operaţia descrisă mai sus. Costul total al împărţirii triunghiului de dimensiune n în plăci elementare este egal cu costul tăierii de-a lungul segmentului de lungime maximă, plus costurile împărţirii benzii şi triunghiului de dimensiune n-1 obţinute, în plăci elementare.
Pe fiecare placă elementară este scris un număr. Costul unei tăieturi (fie că are loc într-un triunghi sau într-o bandă) este egal cu suma valorilor din plăcile elementare care au o latură comună cu segmentul pe care se face tăietura, înmulţită cu lungimea segmentului. Pentru un triunghi de dimensiune n≥2 există exact 2 posibilităţi de a efectua o operaţie (corespunzătoare celor 2 segmente de lungime maximă, unul paralel cu latura A, iar celălalt paralel cu latura B).
O tăiere pe direcţia NV-SE (paralelă cu latura B) în triunghiul din figură are costul (8+10+3+6+6+12)•3 = 135. Costul împărţirii în plăci elementare a benzii obţinute este egal cu (10+6)•1+(6+12)•1+(12+5)•1 = 51.


Cerinţă

Să se determine costul total minim necesar împărţirii plăcii triunghiulare în plăci elementare.

Date de intrare

În fişierul triunghi2.in pe prima linie se află un număr natural nenul n, reprezentând dimensiunea plăcii. Pe a doua linie apar separate prin câte un spaţiu n•(n+1)/2 numere naturale, reprezentând valorile plăcilor elementare în ordinea parcurgerii de sus în jos şi apoi de la stânga la dreapta, conform figurii de mai sus.

Date de ieşire

Fişierul triunghi2.out va conţine o singură linie pe care se va scrie costul total minim cerut.

Restricţii

1 ≤ n ≤ 1000
• 0 ≤ numărul de pe o placă elementară ≤ 2 000 000 000
• Se garantează că rezultatul se va încadra pe 32 biţi.
• Pentru 50% din teste vom avea n ≤ 400.

Exemple

triunghi2.intriunghi2.outExplicaţii
4 10 8 6 4 3 12 3 1 6 5 235 Pentru a asigura costul total minim se poate realiza o tăietură pe direcţia NE-SV de cost 3•(10+6+8+3+4+1)=96 la care se adaugă costul tăierii benzii în plăci elementare 3+4+4+8+8+10=37.
Placa triunghiulară rămasă va fi tăiată pe direcţia NE-SV. Costul tăieturii este 2•(3+6+6+12)=54, tăierea benzii în plăci elementare are costul 1+3+3+6=13
Placa triunghiulară rămasă poate fi tăiată pe direcţia NV-SE. Costul tăieturii este 6+12=18, tăierea benzii în plăci elementare are costul 12+5=17, costul total minim este 235.

autor: Prof. Marius Nicoli
propunător: Prof. Emanuela Cerchez
Liceul de Informatică ″Grigore Moisil″
emanuela.cerchez@gmail.com
Probleme recomandate
De la ONI 2010: diff, kmax, minuni, stalpi1, submatrix1, dreptunghiuri, gaz, xp, petrecere, cmmmc, simetric1, cern, pesti, plaja, tango, arb1, v2d, xor2, cuiburi, telefon, teroristi
De acelaşi autor: secvente1, raze, bile5, 235, dreptunghiuri, albine1, puteri35, miere, left, arbgraf, reuniune, cazare, atletism, fluviu, stele, zar1, poteci, avioane, obstacole, liste, acoperire1, minusk, efect, b2k, progresii, reconst, mijloc, romb, alune, patru, galbeni, schi1, restaurare, sort2dist
Despre programare dinamică: vedete, fbr, tgv, zeratul, rv, comun, retea, circuit, sumdif, copaci, drum, text, palind, joc, vikingi, rafturi, balaur, plimbare, party, pc, pioni, seif, iepuri, numere3, perm, ture, bilete, prop, ro, reduceri, cuburi, invest, cutie2, stalpi, nr2, judete, strict, auto2, tree, jobs, leaves, pstring, program, datorii, senzori, farfurii, joc1, barbie, ambigram, rlcs, cub1, bio, chimie1, otilia, pasune, remi, sir23, tren1, joc5, pachete, echipe, comb, agitatie, ivv, peste, pitici, pipe, shgraf, tabara1, stop, randuri, zidar, log, sant, produs, subsir, cover, bcast, emax, dist, mesaj1, imax, avere, asmax, raft, suma2, joc12, fni, nr4, join, transport, masina3, lsort, microvirus, fat, cafea, echipe1, anticip, bsir, diamant, petrom, evantai, spion, acolor, evo, bombo, lacusta, lant, team, pitici1, numere8, dep, stiva, subgeom, pviz, tir1, cabane, piramida1, mosia, cuvinte1, gaina, materom, sortari, turnuri, trans, politie, codul, dansatori, nkbiti, kperms, treegame, siruri2, 123, jucarii, bradut, joc15, expozitie, text3, ic, echilibru, distsir, kmax, stalpi1, gaz, v2d, cuiburi, mine, orientare, activ, secvbiti, kcons, pokemon, ubergraf, left, acerc, autostrazi, kdist, select, cazare, fluviu, telecomanda, parcela, pion, subs, suma4, sirmax, bdotcom, viena, sablon2, telecab, ikebana, radare, hacker, obstacole, robotel, centrala, verigi, cds, wg, minusk, radioactiv, enigma, jb, efect, maxviz, ripstick, progresii, maxtri, combcuv, blis, subsiruri, mijloc, probleme, unuzero, palindrom1, minerale, speed, zmax, spider, cntgcd, interclasare, bus, pariuri, riglef, fractii2, fall, arbsum, conuri, arbvalmax, procente, metrou
surse trimise | ajutor