#678
mts
Alex a accesat fonduri europene și a pus bazele unei afaceri profitabile, constând în creșterea viermilor de mătase. Viermii de mătase se hrănesc cu frunze de dud, iar Alex are mulți duzi în grădină. El a observat că dacă așează un vierme de mătase pe o frunză de dud, acesta va mânca toată frunza într-un timp care depinde doar de mărimea suprafeței frunzei.
Alex a decis să le aplice viermilor săi de mătase un test de inteligență. În acest scop, a pus în practică următorul experiment științific: pe o bară îngustă, liniară, a așezat de la stânga la dreapta n
frunze de dud având suprafețele s[1]
, s[2]
, … s[n]
, la distanțe x[1]
, x[2]
,…, x[n]
milimetri față de capătul din stânga. Alex a așezat un vierme de mătase pe frunza cu numărul de ordine k
. Pentru oricare frunză i
, viermele de mătase va mânca frunza în s[i]
secunde, unde s[i]
este mărimea suprafeței frunzei. După ce mănâncă în întregime o frunză, viermele pornește imediat cu viteza de 1
milimetru/ secundă spre următoarea frunză, care poate fi la stânga sau la dreapta sa. Altfel spus, el își poate schimba dacă e cazul, sensul de deplasare după ce mănâncă o frunză.
Alex ar dori să știe care este numărul maxim de frunze de dud pe ar putea să le mănânce în întregime cel mai inteligent vierme de mătase pe care îl are, având la dispoziție timpul de maxim t
secunde.
Cunoscând n
, k
, t
, distanțele x[1]
, x[2]
, .., x[n]
și suprafețele s[1]
, s[2]
, …, s[n]
cu semnificațiile descrise mai sus, să se determine numărul maxim de frunze pe care un vierme de mătase poate să le mănânce în întregime, într-un timp cel mult egal cu t
, dacă este plasat inițial pe frunza k
.
Problema | mts | Operații I/O |
mts.in /mts.out
|
---|---|---|---|
Limita timp | 0.2 secunde | Limita memorie |
Total: 32 MB
/
Stivă 32 MB
|
Id soluție | #42974559 | Utilizator | |
Fișier | mts.cpp | Dimensiune | 1.85 KB |
Data încărcării | 24 Martie 2023, 21:47 | Scor / rezultat | 100 puncte |
mts.cpp: In function 'int main()': mts.cpp:14:32: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("mts.in","r",stdin); ^ mts.cpp:15:34: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("mts.out","w",stdout); ^ mts.cpp:17:34: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d %d", &N, &K, &T); ^ mts.cpp:19:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &S[i]); ^ mts.cpp:23:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &X[i]); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | OK. | 5 | 5 | ||
2 | 0 secunde | OK. | 5 | 5 | ||
3 | 0 secunde | OK. | 5 | 5 | ||
4 | 0 secunde | OK. | 5 | 5 | ||
5 | 0.004 secunde | OK. | 5 | 5 | ||
6 | 0.02 secunde | OK. | 5 | 5 | ||
7 | 0.016 secunde | OK. | 5 | 5 | ||
8 | 0.02 secunde | OK. | 5 | 5 | ||
9 | 0.02 secunde | OK. | 5 | 5 | ||
10 | 0.02 secunde | OK. | 5 | 5 | ||
11 | 0.04 secunde | OK. | 5 | 5 | ||
12 | 0.036 secunde | OK. | 5 | 5 | ||
13 | 0.04 secunde | OK. | 5 | 5 | ||
14 | 0.044 secunde | OK. | 5 | 5 | ||
15 | 0 secunde | OK. | 5 | 5 | ||
16 | 0.008 secunde | OK. | 5 | 5 | ||
17 | 0.044 secunde | OK. | 5 | 5 | ||
18 | 0.044 secunde | OK. | 5 | 5 | ||
19 | 0.044 secunde | OK. | 5 | 5 | ||
20 | 0.044 secunde | OK. | 5 | 5 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema mts face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.