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.