Continuand noua 'linie de vacanta', propun o problema din aceasi categorie
cu ultima propusa (categoria ciudate:-)), si cu timpul de rezolvare tot de
doua saptamani.
------------------------------------
| PROBLEMA 26: Turnul Eiffel |
| PUNCTAJ: 110 Dexteri |
| DEADLINE: Luni, 26 Iulie |
| TIMP DE IMPLEMENTARE: 110 minute |
| TIMP DE EXECUTIE: 110/22 sec./test |
------------------------------------
La 110 ani de la momentul in care inginerul francez Gustave Eiffel a
terminat de construit turnul care ii poarta numele (stiti ca astazi este
ziua Frantei, nu ?), ati primit o sarcina similara. Trebuie si voi sa
construiti un turn. Baza turnului vostru este un dreptunghi, care are coltul
stanga-jos situat in originea sistemului de coordonate cartezian xOy.
Fundatia acestui turn va fi construita - spre surpriza voastra - din placi
cu forma de cercuri de diferite diametre. Aceste cercuri vor trebui
dispuse (nu neaparat toate) in interiorul dreptunghiului care reprezinta
baza turnului, astfel incat sa nu existe 2 placi care sa se suprapuna, iar
suprafata din dreptunghi acoperita de placi sa fie cat mai mare.
Datele de intrare se citesc din fisierul 'eiffel.in' sub urmatorul format:
eiffel.in
A B -> coordonatele coltului dreapta-sus al bazei (numere reale)
n -> numarul de placi disponibile (n<=200)
R1
...
Ri -> raza cercului (placii) i (numar real)
...
Rn
Datele de iesire vor fi afisate in fisierul 'eiffel.out' in urmatorul
format:
eiffel.out
MAX -> suprafata acoperita de placi, numar real cu 3 zecimale exacte
A1 B1
...
Ai Bi -> coordonatele centrului placii i, cu 3 zecimale exacte;
... in caz ca placa nu a fost pozitionata se va scrie 0 0
An Bn
Exemplu:
Pentru fisierul de intrare: Un fisier valid de iesire este:
eiffel.in eiffel.out
10 10 50.265
2 0 0
20.176 5.456 5.457
4
Modul de punctare al problemei va fi asemanator celui aplicat problemei
precedente, adica, pentru un anumit test, se vor executa sursele tuturor
concurentilor pe acel test, se va alege rezultatul cel mai bun, concurentii
fiind punctati pe testul respectiv doar daca au acoperit cel putin X% din
valoarea maxima gasita (o sa ma gandesc la o valoare potrivita pentru X).
Vive la France et la Tour Eiffel ! :-)
|
|