În România, populația de urși este în continuă creștere. Cercetătorii de la Institutul Viitorului (IV) au hotărât să studieze mai îndeaproape acest fenomen, analizând comportamentul unei mici populații de urși în condiții speciale și într-un spațiu restrâns.
Ei au constatat că o „familie” formată din 2 urși (mascul și femelă) are, în medie, pui. Presupunem că se nasc un număr egal de masculi și femele. Astfel, într-un model matematic simplist, numărul de urși se înmulțește cu de la o generație la alta. În plus, există și mici mase migratoare de urși. Aceștia nu participă la propagarea speciei și sunt tratați separat. Cercetătorii au observat că de la o generație la alta în spațiul studiat ajung, în medie, urși „străini” și pleacă urși „străini”.
Pe scurt, dacă într-o generație există urși „băștinași” și urși „străini”, în următoarea generație vor exista urși „băștinași” și urși „străini”.
Cea mai importantă concluzie pe care au tras-o cercetătorii este că atât populația de urși „băștinași”, cât și cea de urși „străini” crește strict.
Cerință
La începutul studiului (generația 1) există urși „băștinași” și niciun urs „străin”.
Se dau: numărul cerinței () și întrebări, fiecare conținând un număr . În funcție de numărul cerinței, trebuie determinat:
- Câți urși vor exista în total în generația ?
- Spațiul, fiind restrâns, permite un număr de maximum urși în total. Până la a câta generație se poate desfășura experimentul fără depășirea limitei de urși?
Date de intrare
Prima linie conține două numere naturale, (numărul cerinței) și (numărul de întrebări).
A doua linie conține un număr natural, (numărul inițial de urși) și trei numere reale (zecimale) pozitive, , și , cu semnificația din enunț (caracterizează creșterea populației).
Pe următoarele linii se găsește câte un număr natural (numărul generației pentru cerința 1 și numărul maxim de urși pentru cerința 2).
Date de ieșire
Pe cele linii ale ieșirii se vor afișa răspunsurile la întrebări. Linia va conține răspunsul la întrebarea . Toate numerele afișate vor fi numere naturale. În cazul primei cerințe, se va afișa răspunsul la întrebare rotunjit la cel mai apropiat număr întreg.
Pentru a afișa variabila x
de tip double
rotunjită la cel mai apropiat număr întreg, includeți biblioteca cmath
și folosiți instrucțiunea std::cout << (long long)std::round(x);
.
Restricții și precizări
- Se recomandă folosirea tipului de date
double
(în loc defloat
) pentru reprezentarea numerelor reale. - Studiul durează maximum de generații.
- Numărul maxim de urși într-o generație este de .
- Pentru cerința 1, se garantează că este cel puțin egal cu și strict mai mic decât numărul primei generații în care numărul de urși depășește pentru fiecare întrebare.
- Pentru cerința 2, se garantează că este cel puțin egal cu și cel mult egal cu numărul de urși din generația pentru fiecare întrebare.
- Se acordă 40 de puncte pentru rezolvarea cerinței 1 și 60 de puncte pentru rezolvarea cerinței 2.
- Pentru citirea și afișarea rapidă, se recomandă folosirea acestor linii de cod la începutul funcției
main
:
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
Exemplul 1
stdin
1 4
6 2.45 7.55 3.88
3
1
5
2
stdout
16
6
28
11
Explicație
Se rezolvă prima cerință; avem patru întrebări. Inițial există 6 urși „băștinași”, iar ; ; .
În cea de-a doua generație vor fi aproximativ urși „băștinași” și urși „străini”.
În cea de-a treia generație vor fi aproximativ urși „băștinași” și urși „străini”. În total, urși. Acest număr rotunjit la cel mai apropiat întreg este , deci se va afișa .
Se procedează similar și pentru celelalte întrebări.
Exemplul 2
stdin
2 3
6 2.45 7.55 3.88
12
8
29
stdout
2
1
5
Explicație
Se rezolvă cea de-a doua cerință; avem trei întrebări. Inițial există 6 urși „băștinași”, iar ; ; .
Folosind calculele făcute anterior, în prima generație există urși, în cea de-a doua există , iar în cea
de-a treia . Experimentul se poate desfășura doar până la cea de-a doua generație fără a depăși limita de urși.
Se procedează similar și pentru celelalte întrebări.