Definim o expresie ca fiind un șir de caractere care respectă una dintre următoarele:
-
x; - reprezintă un număr natural (constantă); (ex.
12200) - sau , unde , sunt (sub-)expresii. Aici, semnifică cel mai mare divizor comun al două numere, iar semnifică cel mai mic multiplu comun al două numere. De exemplu, avem că , .
De exemplu, x, 13, (5,2), [3,[x,(14,1)]], [x,x] sunt expresii, pe când 0, (5, 2, 3), [x, 2) nu sunt expresii. Observați că expresiile nu conțin niciodată spații.
Pentru o expresie dată și un număr natural pozitiv , definim ca fiind rezultatul evaluării expresiei , unde tuturor aparițiilor lui le vor fi asociate valoarea . De exemplu:
([x,3],[x,2]) ([10,3],[10,2]) (30,10) 10
(6,14) (6, 14) 2
x 12
Dându-se o expresie și două numere naturale , să se calculeze .
Rezultatul se va afișa modulo .
Date de intrare
Fișierul de intrare expresii.in conține pe prima linie o expresie . Pe a doua linie se găsesc numerele , separate prin spațiu.
Date de ieșire
Fișierul de ieșire expresii.out va conține un număr întreg reprezentând valoarea cerută.
Restricții și precizări
- În tabelul ce urmează, reprezintă lungimea expresiei (numărul de caractere), iar reprezintă constanta de valoare maximă din (sau , dacă nu conține constante).
| # | Punctaj | Restricții |
|---|---|---|
| 1 | 9 | și , unde |
| 2 | 10 | , , și expresia nu conține paranteze pătrate [] |
| 3 | 15 | , , |
| 4 | 17 | și toate constantele din sunt puteri de |
| 5 | 17 | |
| 6 | 10 | |
| 7 | 14 | |
| 8 | 8 |
Exemplul 1
expresii.in
(x,6)
4 4
expresii.out
2
Explicație
Pentru primul exemplu, .
Exemplul 2
expresii.in
[x,6]
1 6
expresii.out
66
Explicație
Pentru al doilea exemplu, .
Exemplul 3
expresii.in
(12,(x,(8,6)))
3 6
expresii.out
6
Exemplul 4
expresii.in
([x,3],[x,2])
10 10
expresii.out
10
Exemplul 5
expresii.in
[([(x,5),2],[12,5]),(x,16)]
28 33
expresii.out
36
Explicație
Pentru ultimul exemplu, răspunsurile pentru fiecare valoare din interval sunt (în această ordine).
Atenție! Exemplele , , și nu respectă constrângerile subtask-ului . Exemplele , și nu respectă constrângerile subtask-ului . Exemplele , și nu respectă constrângerile subtask-ului .
Sursă și autori
OSEPI 2021, clasele 10. Lucian Bicsi, Tamio Vesa-Nakajima.
Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.
Trimite o soluție
Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.
Se verifică autentificarea…