Sunteți pe pagina 1din 1

Concursul de Informatică „Grigore Moisil”

Urziceni, 31ianuarie 2015

CLASA a XI-a PROBLEMA 2


COLECT 100 puncte
Un grup de roboți călătoresc în spaţiu, pentru colectarea unor materiale de pe cele n planete din sistemul HAIOS.
Planetele sunt numerotate de la 1 la n, în ordinea în care sunt amplasate în sistem. Roboții au la dispoziţie h OS
(unitatea de timp pe HAIOS), pentru cercetări şi colectări de materiale, timp pe care trebuie să-l folosească integral.
Materialele au proprietatea că încep să se dezintegreze odată cu sosirea roboților pe planetă. Roboții sunt poziţionaţi în
dreptul planetei 1 şi pot cerceta planetele exact în ordinea în care se află marcate în sistem, dar nu se opresc să
colecteze materiale decât dacă se hotărăşte prin consens că merită să colecteze materiale de pe acea planetă. Distanţa
între două planete consecutive (de la i la i+1) poate fi parcursă de întreg grupul în exact 5*ti MOS (subunitate de timp,
1 OS = 60 MOS). De asemenea roboții au estimat că de pe fiecare planetă i pot fi colectate mi materiale în primele 5
MOS. O colectare durează exact 5 MOS. La fiecare 5 MOS cantitatea de materiale ce poate fi colectată scade cu o cotă
di, pentru că se dezintegrează. Roboții pot finaliza sesiunea de colectare și cercetare pe orice planetă din sistem.
Cerinţă: Scrieţi un program care să determine cantitatea maximă de materiale pe care grupul de roboți o poate colecta
în cele h OS din HAIOS, precum şi modul în care grupul îşi planifică cercetările pentru a colecta o cantitate maximă
de materiale.
Date de intrare: Fişierul de intrare colect.in conţine mai multe seturi de date de test. Fiecare set de date de test
conţine pe prima linie un număr natural n care reprezintă numărul de planete. Pe cea de a doua linie se află un număr
natural h care reprezintă numărul de OS pe care grupul de roboți îl are la dispoziţie. Pe cea de a treia linie sunt n
numere naturale separate prin câte un spaţiu m1 m2 ... mn care reprezintă cantitățile de materiale pe care grupul de
roboți estimează să le colecteze în primele 5 MOS de pe fiecare planetă. Pe cea de a patra linie se află n numere
naturale separate prin câte un spaţiu d1 d2 ... dn care reprezintă ratele cu care scad după fiecare interval de 5 MOS
cantitățile de materiale ce pot fi colectate în următorul interval de 5 MOS de pe fiecare planetă. Pe ultima linie se află
n-1 numere naturale separate prin câte un spaţiu t1 t2...tn-1 care reprezintă numărul de intervale de 5 MOS necesare
pentru a ajunge de la o planetă la alta. Fişierul de intrare se încheie cu o linie care conţine valoarea 0.
Date de ieşire: Fişierul de ieşire colect.out va conţine câte două linii pentru fiecare set de date de intrare. Pe prima
dintre aceste două linii, va fi afişată cantitatea maximă de materiale ce pot fi colectate din HAIOS. Pe cea de a doua
linie vor fi afişate n numere naturale separate prin câte un spaţiu. Al i-lea număr de pe linie reprezintă numărul de
MOS necesare pentru a colecta cantitatea de materiale corespunzătoare de pe planeta i. Numărul de MOS pe care
grupul le petrece pe fiecare planetă trebuie să fie multiplu de 5. Dacă există mai multe soluţii (posibilităţi de a
planifica vizitele pe planete astfel încât să se obţină o cantitate maximă de materiale) se va alege soluţia în care timpul
petrecut pe planeta 1 este maxim. Dacă în continuare există mai multe soluţii, va fi aleasă cea în care timpul petrecut
pe planeta 2 este maxim etc.
Restricţii: 2<=n<=125; 1<=h<=80; 0<ti<1000; 0<=mi, di<=1.000.000.
Numărul maxim de seturi de date de test dintr-un fişier de intrare este 30.
Exemplu
colect.in colect.out
2 31
1 45 5
10 1 480
25 240 0 0 0
2 724
4 115 10 50 35
4
10 15 20 17
0343
123
4
4
10 15 50 30
0343
123
0

Timp maxim de execuţie: 0,5 secunde/fisier.


Memorie: 2 MB

S-ar putea să vă placă și