Time limit: 0.17s
Memory limit: 64MB
Input:
Output:
Gigel a găsit prin sertarul bunicii un bilețel pe care scria o formulă de decodificare a unui șir de caractere de lungime cel mult
ce conține numere (le vom nota cu ), , , și . Acest șir are următoarele reguli de decodificare:
- Dacă , atunci se transformă într-un număr întreg (suma inverselor modulare ale numerelor , , , ..., faţă de , modulo ;
- Dacă , atunci se transformă într-un număr ;
- Dacă , atunci se transformă într-un număr care este egal cu câte numere sunt mai mici strict decât și pentru care .
La final Gigel însumează numerele rămase.
Cerința
Ajutați-l pe Gigel să decodifice șirul găsit pentru a vă cinsti cu o shaorma!
Date de intrare
Se citește șirul .
Date de ieșire
Se afișează suma numerelor rămase după decodificarea șirului .
Restricții și precizări
- lungimea șirului ;
- Numerele regăsite în șir sunt naturale, și ;
- Notăm cu cel mai mare divizor comun al numerelor și , iar cu cel mai mic multiplu comun al numerelor și ;
- Se garantează că fiecare operație nu depășeste tipul de date
unsigned long long
; - Se garantează că expresia este corectă;
- Testul 0 este exemplul de mai jos.
Exemplu
stdin
1,<2,{12,4},[9,{4,5,9}]>,2
stdout
21
Explicație
{12,4} = 12
.
{4,5,9} = 180
.
Șirul se va transforma în: 1,<2,12,[9,180]>,2
.
[9,180] = 13
, deoarece inversul modular al lui faţă de este , iar inversul modular al lui faţă de este , deci .
<2,12,13> = 18
.
Deci, rezultatul va fi: 1 + 18 + 2 = 21
.