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

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


Timp maxim de execuţie / test:
0.4s
Memorie totala disponibilă / stivă:
64MB / 8MB

Ali Lalap se joacă Xmoto pe telefonul mobil. Scopul jocului este de a parcurge cu motocicleta circuitul din Gheorgheni. Traseul este format din N tronsoane. Consumul de benzină pentru tronsonul i (1 ≤ i ≤ N) este definit astfel:
ai * v + ki litri, dacă v ≤ vi
bi * v + qi litri, dacă v > vi,
unde ai, bi, ki, qi, vi sunt valori constante, iar v este viteza cu care se deplasează Ali Lalap pe acel tronson.
Pentru a nu forja motocicleta, lui Ali Lalap îi place să meargă cu viteză constantă şi ar vrea să ştie câte posibilităţi de a alege viteza cu care să parcurgă traseul există astfel încât să consume L litri de combustibil.

Cerinţă

Calculaţi pentru câte valori distincte ale vitezei consumul total va fi de L litri.

Date de intrare

Pe prima linie din fişierul de intrare xmoto.in se află numerele naturale N şi L. Următoarele N linii conţin fiecare cele patru numere reale ai bi ki qi urmate de un număr întreg vi cu semnificaţiile din enunţ.

Date de ieşire

Fişierul de ieşire xmoto.out va conţine pe prima linie un singur număr M, reprezentând numărul maxim de valori ale vitezei cu care parcurgând în întregime traseul se obţine un consum total de L litri. Pe următoarele M linii se vor afişa M numere reale, distincte, cu 6 zecimale şi sortate crescator w1 w2 ... wM, astfel încât dacă se parcurge traseul cu viteza wi (1<=i<=M) să se obţină un consum total de L litri.

Restricţii

N ≤ 50 000
• Numerele reale ai, bi aparţin intervalului [-100, 100]
-1 000 000 ≤ ki, qi ≤ 1 000 000
L ≤ 100 000 000
• Pe fiecare tronson consumul va fi strict pozitiv pentru orice viteză din intervalul (0, 10 000]
• Viteza maximă a motocicletei este de 10 000 km/h
• Motocicleta rulează de la început până la sfârşit cu aceeaşi viteză (nu se pierde timp cu plecarea de pe loc, nu există accelerări/frânări )
• Toate vitezele (viteza maximă, vitezele vi, viteza care trebuie determinată) sunt exprimate în aceeaşi unitate de măsură
• Se consideră corectă orice soluţie în care vitezele diferă cu cel mult 10-6 faţă de rezultatul corect.
• Verificarea consumului total se va face cu o precizie de 10-6 faţă de L.
• Se garantează că M este finit.

Exemple

xmoto.inxmoto.outExplicaţii
2 150 3.0 -2.0 2.0 22000.0 60 2.0 4.0 4.0 2.0 50 1 28.800000 28.8 ≤ 60 deci consumul pe primul tronson este x=3*28.8+2=88.4
28.8 ≤ 50 deci consumul pe al doilea tronson este y=2*28.8+4=61.6
Consumul total: x+y=88.4+61.6=150

autor: stud. Vlad Duta
propunător: Prof. Emanuela Cerchez
Colegiul Naţional ″Emil Racoviţă″
emanuela.cerchez@gmail.com
Probleme recomandate
surse trimise | ajutor