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

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


Timp maxim de execuţie / test:
0.1s
Memorie totala disponibilă / stivă:
16MB / 1MB

Pe o foaie de matematică, tânărul Herostrate a desenat un sistem de coordonate cartezian cu centrul într-un punct de intersecţie a liniilor caroiajului, axele de coordonate fiind respectiv paralele cu laturile foii. Punctele de interesecţie ale liniilor caroiajului foii de matematică au coordonate întregi.
Pe foaia de matematică a fost construită din beţişoare o figură conexă. Au fost folosite beţişoare de două tipuri:
• De lungime 1 pentru elementele figurii plasate pe o latură verticală sau o latură orizontală a unui pătrăţel de pe foaie.
• De lungime sqrt(2) pentru elementele figurii plasate pe o diagonală a unui pătrăţel de pe foaie.

Tânărul Herostrate vrea să ardă figura. El poate să o aprindă în orice punct de coordonate întregi (de exemplu în punctul A (vezi desenul) figura nu poate fi aprinsă, dar în punctele B şi C – poate fi aprinsă).
Focul se răspândeşte de-a lungul fiecărui beţişor cu o viteză constantă (fiecare beţişor are viteză proprie de ardere). Beţişorul poate arde în câteva locuri (de exemplu când se aprinde din ambele capete; sau când la o intersecţie diagonală focul trece pe la un beţişor la altul – pe beţişorul nou aprins focul se extinde în ambele direcţii).


Cerinţă

Scrieţi un program, care va determina care este timpul minim în care poată să ardă complet figura.

Date de intrare

Fişierul de intrare bete.in conţine pe prima linie un număr natural n reprezentând numărul de beţişoare din care este construită figura. Pe următoarele n linii este descrisă figura, pentru fiecare beţişor din componenţa figurii fiind specificate pe o linie 5 numere întregi separate prin câte un spaţiu de forma X1 Y1 X2 Y2 T, unde X1, Y1, respectiv X2, Y2 reprezintă coordonatele extremităţilor beţişorului, iar T este timpul de ardere a beţişorului, dacă el este aprins la un singur capăt, timp exprimat în minute.

Date de ieşire

Fişierul bete.out va conţine o singură linie pe care va fi scris un număr real cu 4 zecimale, repezentând timpul minim de ardere a figurii exprimat în minute.

Restricţii

1≤n≤40
Se garantează că figura este conexă, toate beţişoarele au lungimea 1 sau sqrt(2) şi oricare două beţişoare nu coincid.
-200≤X1, Y1, X2, Y2≤200; 0≤T≤107.
Foaia de matematică nu arde.
Rezultatul este considerat corect dacă diferenţa în valoare absolută dintre numărul din fişierul de ieşire şi soluţie nu depăşeşte 0.001.

Exemple

bete.inbete.outExplicaţii
5 0 0 0 1 1 1 0 0 1 10 0 0 1 0 1 0 0 1 1 1 2 2 1 1 1 3.2500 igura se aprinde în punctul (0, 0).
Timp de 0,5 min. ard beţişoarele 1, 3 şi 4. După 0,5 min. se aprinde de la mijloc beţişorul 2 şi arde în ambele direcţii. După încă 0,5 min. ard total 1, 3, 4. Se aprinde beţişorul 5, care arde 1 min. (mai repede decât beţişorul 2).
Beţişorul 2 arde 0,5 min dinspre mijloc spre extremităţi. Se formează 2 fragmente, care ard câte 4,5 min. Dar, deoarece focul ajunge la ambele extremităţi, arderea are loc de 2 ori mai repede: 2,25 min. Total 1 + 2,25 = 3,25
3 1 1 1 2 10 1 2 2 2 10 1 1 2 2 50 35.0000 Figura se aprinde în punctul (1,2). Timp de 10 min ard beţişoarele (1 1, 1 2) şi (1 2, 2 2). Ultimul beţişor se aprinde concomitent din ambele capete şi arde în 25 min.

autor: Prof. Sergiu Corlat
propunător: Prof. Emanuela Cerchez
Liceul de Informatica ″Grigore Moisil″
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la Finala .campion 2007: bitslang, kfactor, np, cutie2, stalpi, hperm, nr2
De acelaşi autor: nice, fib, atac, mere, ff, patrate, astre, baby, zapada, pendul, unu, dragon, placi, druid, comori, ploaia, lot, arcas, factk, robot1, kalah, cetati, palc, expo, porumb, universitate, safeu, capra, zuma, gsm, megascoala
Despre graf: gropi, tgv, matrice2, miniasm, picnic, mere, circuit, soldati, arce, conflicte, desen, robot, furtuna, net, cuvinte, excursie, cadere, pioni, reinvent, kreg, flood, croco, johnie, matrice, arthur, kimberley, ro, sol, caravane, honest, police, pcod, zmeu, auto2, grazing, datorii, trafic, sponsori, monede1, apm, bile1, caini, masina1, bomboane, turn1, shgraf, paintball, program1, tgraf, kgb, algola, felinar, joc6, tric, homeless, promo, turism, casute, joc10, prieteni1, traseu, zapezi, litoral, lover, trip, garaj, ziduri, tv, pact, echipe1, vitale, spion, trasee, bcolor, scara2, lant, ab3, soc, team, gard, rsp, graf, mexc, dep, albinuta1, atac2, cabane, drumuri, tj, grade, jungla, lanterna, magic5, coment, urgenta, fazan, lanturi, cfr, site, traseu1, trmv, graphgame, minuni, telefon, ubergraf, carray, pestera, chei, arbgraf, war, fluviu, drumuri1, entries, ubuntzei, pack, fotbal1, pamant, dag, razboi, benzina2, wg, neconex, asfalt1, kubus2, module, progresii, dfs, prieteni3, megascoala, grafxy, dineu, vot1, biperm, drumuri2, nrgraf, cristal, cartite, copaci3, dragoni, nuclee
Despre drum minim: miniasm, robot, furtuna, excursie, arthur, zmeu, trafic, masina1, bomboane, traseu, litoral, lover, trip, scara2, team, gard, pitici1, base3, coach, lanturi, trmv, pestera, fluviu, ubuntzei, razboi, benzina2, kubus2, megascoala, dragoni
surse trimise | ajutor