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

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


Timp maxim de execuţie/test:
0.2 secunde
Memorie totală disponibilă/stivă:
16MB/1 MB

N autobuze se deplasează pe un traseu circular de lungime L, toate mergând în acelaşi sens. Autobuzele sunt numerotate cu numere de la 1 la N, în ordinea în care se deplasează pe traseu (autobuzul 2 se afla în urma autobuzului 1, autobuzul 3 în urma autobuzului 2, ş.a.m.d.). Autobuzele se deplasează toate cu aceeaşi viteză (constantă) V0, iar distanţa dintre oricare două autobuze consecutive este egală (deci, ea este egală cu L/N). La un moment dat, K dintre cele N autobuze sunt scoase simultan şi instantaneu de pe traseu (numerele de ordine ale celor K autobuze scoase sunt cunoscute). Se doreşte ca distanţele dintre oricare două autobuze consecutive dintre cele N-K autobuze rămase pe traseu să devină egale (întrucât traseul este circular, după ultimul autobuz rămas pe traseu urmează primul autobuz rămas pe traseu). Pentru aceasta, fiecare autobuz i rămas pe traseu îşi poate alege o viteză V(i) din intervalul [Vmin, Vmax] cu care va circula o durată de timp T (în acelaşi sens ca şi până acum). După trecerea duratei de timp T, distanţele dintre oricare două autobuze consecutive ajung să fie egale şi autobuzele revin la viteza iniţială V0. Se consideră că un autobuz i îşi poate schimba instantaneu viteza de la V0 la viteza aleasă V(i) (la început) şi de la viteza aleasă V(i) la V0 (la sfârşit)

Cerinţă

Determinaţi valoarea T minimă după care distanţele dintre oricare două autobuze rămase pe traseu devin egale (considerând că autobuzele rămase pe traseu îşi aleg vitezele în mod corespunzător).

Date de intrare

Prima linie a fişierului de intrare autobuze.in conţine numerele întregi N, K, L, Vmin, Vmax şi V0. A doua linie conţine K numere în ordine crescătoare, reprezentând numerele autobuzelor eliminate de pe traseu. Numerele de pe aceeaşi linie sunt separate prin câte un spaţiu.

Date de ieşire

Fişierul de ieşire autobuze.out va conţine o singură linie pe care va fi scris un număr natural T, reprezentând timpul minim după care distanţele dintre oricare două autobuze consecutive rămase pe traseu devin egale. Valoarea afişată se va considera corectă dacă diferă prin cel mult 0.0001 (în valoare absolută) faţă de valoarea exactă.

Restricţii

  • 1 <= N <= 10000
  • 1 <= K <= N-1
  • 1 <= L <= 10000
  • 0 <= Vmin <= V0 <= Vmax <= 10000
  • Vmin < Vmax
  • Distanţele exprimate în metri, vitezele în metri/secundă şi timpul în secunde.
  • Distanţa = Viteza x Timp

Exemplu

autobuze.in autobuze.out Explicaţii

4 1 60 21 70 60
3

0.2041 Pe traseu rămân autobuzele numerotate cu 1, 2 şi 4. Distanţele dintre aceste autobuze sunt, în ordine, 15, 30 şi 15. Distanţa finală dintre oricare două autobuze consecutive rămase pe traseu (inclusiv dintre ultimul si primul) trebuie să fie 20. Autobuzul 1 îşi va alege viteza 45.5, autobuzul 2 îşi va alege viteza 70, iar autobuzul 4 îşi va alege viteza 21.
autobuze.in autobuze.out Explicaţii

4 2 40 30 80 50
2 4

0.0000 Cele două autobuze rămase pe traseu au de la început distanţele egale între ele.
Mugurel Ionut Andreica
Universitatea Politehnica Bucuresti
propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
surse trimise | ajutor