Tu și Silion vreți să vă jucați un joc. Veți spune, pe rând, numere naturale nenule mai mici sau egale cu 10
. Suma numerelor ambilor jucători se va reține pe parcursul jocului. Câștigătorul este acela care spune ultimul un număr astfel încât suma totală să devină 10 000
. Dovedește-i lui Silion că, dacă ai avantajul de a începe, poți găsi o strategie optimă cu care să câștigi de fiecare dată!
Intrare și ieșire
Pentru o comunicare eficientă, vei apela din main funcția predefinită cu antetul unsigned comunica(unsigned x). Parametrul x
reprezintă valoarea transmisă lui Silion, iar funcția va întoarce răspunsul său, cu excepția momentului în care jocul se încheie, când Silion va transmite valoarea 0
.
Restricții și precizări
- În
30%
din cazuri, Silion va juca cu un număr constant; - În alte
30%
din cazuri, adversarul va juca cu numere alese la întâmplare; - În restul de
40%
din cazuri, Silion joacă conform propriei sale strategii.
Notă: Dacă Silion poate câștiga meciul într-o singură mutare, indiferent de cazurile de mai sus, atunci acesta o va face!
Atenție!
Soluția propusă va conține doar funcția main. Aceasta poate apela numai funcția comunica. Prezența altor instrucțiuni poate fi interpretată drept încălcareea regulilor. De asemenea, regulile pot fi considerate încălcate dacă:
- Sunt afișate pe ecran diverse mesaje sau sunt citite date din consolă;
- Funcția comunica este apelată cu un parametru ce nu se încadrează în intervalul
[1, 10]
.
Jocul se încheie automat dacă regulile au fost încălcate sau dacă unul din jucători iese învingător.
Exemplu:
Un exemplu de joc restrâns, în care tu și Silion jucați aleatoriu până la 100
, este următorul:
Mutare | Jucător | Număr | Total curent |
---|---|---|---|
1 | Tu | 10 | 10 | 2 | Silion | 7 | 17 |
3 | Tu | 6 | 23 |
4 | Silion | 1 | 24 |
5 | Tu | 2 | 26 |
6 | Silion | 2 | 28 |
7 / 8 | Tu / Silion | 2 / 9 | 30 / 39 |
9 / 10 | Tu / Silion | 7 / 5 | 46 / 51 |
11 / 12 | Tu / Silion | 1 / 10 | 52 / 62 |
13 / 14 | Tu / Silion | 10 / 8 | 72 / 80 |
15 / 16 | Tu / Silion | 4 / 4 | 84 / 88 |
17 / 18 | Tu / Silion | 3 / 9 | 91 / 100 |
Silion câștigă meciul, ajungând primul la 100
.