Atenție! Aceasta este o versiune veche a paginii., scrisă la 2023-03-17 17:33:14.000.
Revizia anterioară   Revizia următoare  

Fișierul intrare/ieșire gigel.in, gigel.out Sursă imaginație proprie
Autor Theodor-Ioan Pîrnog Adăugată de avatar Theodor17 Pirnog Theodor Ioan Theodor17
Timp de execuție pe test 0.1 sec Limită de memorie 16384 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

Gigel (clasa a 10-a)

Gigel a găsit prin sertarul bunicii un bilețel pe care scria o formulă de decodificare a unui șir de caractere s de lungime cel mult 1.000.000 ce conține numere naturale nenule (le vom nota cu xk), [ ] (paranteze pătrate), { } (acolade), < > (paranteze unghiulare) și , (virgulă) . Acest șir are următoarele reguli de decodificare pentru fiecare subșir sk care începe cu [, { sau < și se termină cu ], } sau >:
1) Dacă sk = “[x1, x2, x3, ..., xp]”, atunci sk se transformă într-un număr întreg t = (x1^-1^ + x2^-1^ + x3^-1^ + ... + xp^-1^)$% 773; (suma inverselor modulare ale numerelor $x1, x2, x3, ..., xp față de 773, modulo 773)
2) Dacă sk = “{x1, x2, x3, ..., xp}”, atunci sk se transformă într-un număr $t = cmmmc(x1, x2, x3, ..., xp)$% 773;
3) Dacă sk = “1, x2, x3, ..., xp>“, atunci sk se transformă într-un număr t care este egal cu câte numere q sunt mai mici strict decât S = (x1 + x2 + x3 + ... + xp)$% 773 și pentru care $cmmdc(S, q) = 1.
La final Gigel însumează numerele rămase.

Ajutați-l pe Gigel să decodifice șirul găsit pentru a vă răsplăti cu 100 de puncte!

Date de intrare

Fișierul de intrare gigel.in va conține pe prima linie șirul s.

Date de ieșire

Fișierul de ieșire gigel.out va conține suma numerelor rămase după decodificarea șirului s.

Restricții și precizări

  • 1 ≤ xk ≤ 20, pentru orice xk;
  • 1 ≤ lungimea șirului s ≤ 1.000.000;
  • Notăm cu cmmdc(a, b) cel mai mare divizor comun al numerelor a și b, iar cu cmmmc(a, b) cel mai mic multiplu comun al numerelor a și b;
  • Se garantează că fiecare operație nu depășeste tipul de date unsigned long long;
  • Inversul modular al unui număr x se notează cu x^-1^ și este egal cu numărul a cu proprietatea că x * a mod M = 1.
  • Se garantează că expresia este corectă.

Exemplu

gigel.in gigel.out Explicație
1,<2,{12,4},[9,{4,5,9}]>,2
21
{12,4} = 12 (operația 2) {4,5,9} = 180 (operația 2) Șirul se va transforma în: 1,<2,12,[9,180]>,2 [9,180] = 13, deoarece inversul modular al lui 9 față de 773 este 86,
iar inversul modular al lui 180 față de 773 este 700, deci (86 + 700) % 773 = 13 (operația 1) <2,12,13> = 18 (operația 3) Șirul se va transforma în: 1,18,2 Deci, rezultatul va fi: 1 + 18 + 2 = 21.

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 5 categorii