Procente

Time limit: 0.1s Memory limit: 24MB Input: procente.in Output: procente.out

Definim o modificare procentuală de preț ca fiind o pereche (c(c, p)p) formată dintr-un caracter c{+c \in \{‘+‘, }‘-‘\} și un număr natural pp. Dacă c=+c = ‘+‘ atunci are loc o scumpire iar dacă c=c = ‘-‘ atunci are loc o ieftinire a unui preț, iar numărul pp reprezintă procentul de modificare a prețului.
Exemple de modificări procentuale de preț:

  • (+35)(+ 35) – reprezintă scumpirea unui preț cu 35%35\%
  • (50)(– 50) – reprezintă ieftinirea unui preț cu 50%50\%

Unui preț inițial i se poate aplica o succesiune de nn modificări procentuale de preț obținându-se un preț final. Numim ciclu de preț de lungime nn o succesiune de nn modificări procentuale de preț, cu proprietatea că prețul final este egal cu prețul inițial.

Exemple de cicluri de preț :

  • de lungime n=2n=2: (20)(- 20), (+25)(+ 25)
  • de lungime n=3n=3: (50)(- 50), (+25)(+ 25), (+60)(+ 60)

Cerință

Să se scrie un program care citește un număr natural nn și determină numărul de cicluri de preț de lungime n distincte ce conțin cel puțin o dată, o modificare procentuală cunoscută (C(C, P)P).

Date de intrare

Fişierul de intrare procente.in conţine pe prima linie numărul natural nn și pe a doua linie un caracter C{+C \in \{‘+‘, }‘-‘\}, urmat de un număr natural PP, despărțite printr-un spațiu, cu semnificaţia de mai sus.

Date de ieșire

Fişierul de ieşire procente.out va conţine pe prima linie numărul căutat.

Restricții și precizări

  • 2n802 \leq n \leq 80;
  • C{+C \in \{‘+‘, }‘-‘\}
  • Valoarea procentului pp în caz de scumpire este cuprinsă între 00 și 100100 inclusiv.
  • Valoarea procentului pp în caz de ieftinire este cuprinsă între 11 și 9999 inclusiv.
  • Două modificări procentuale de preț (c1(c_{1}, p1)p_{1}), (c2(c_{2}, p2)p_{2}) sunt diferite dacă c1c2c_{1} \neq c_{2} sau p1p2p_{1} \neq p_{2}.
  • Două cicluri de preț de lungime nn sunt distincte, dacă diferă prin cel puțin o modificare procentuală de preț.
  • Două cicluri de preț de lungime nn ce conțin aceleași modificări procentuale, dar în altă ordine, sunt identice.
  • Pentru 28%28\% din punctaj n20n \leq 20, pentru 60%60\% din punctaj n40n \leq 40, pentru 100%100\% din punctaj n80n \leq 80

Exemplul 1

procente.in

2
- 20

procente.out

1

Explicație

Există o singură succesiune de 22 modificări procentuale de preț ce conține și o ieftinire cu 20%20\% care are prețul final egal cu prețul inițial. Această succesiune este (20)(- 20), (+25)(+ 25).

Exemplul 2

procente.in

3
+ 25

procente.out

4

Explicație

Există patru succesiuni distincte de 33 modificări procentuale de preț ce conțin cel puțin o scumpire cu 25%25\% care au prețul final egal cu prețul inițial. Aceste succesiuni sunt:

  • (50)(- 50), (+25)(+ 25), (+60)(+ 60)
  • (36)(- 36), (+25)(+ 25), (+25)(+ 25)
  • (60)(- 60), (+25)(+ 25), (+100)(+ 100)
  • (20)(- 20), (+25)(+ 25), (+0)(+ 0)

Log in or sign up to be able to send submissions!