ConcursC++17

Procente

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

  • 2≤n≤802 \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ă c1≠c2c_{1} \neq c_{2} sau p1≠p2p_{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 n≤20n \leq 20, pentru 60%60\% din punctaj n≤40n \leq 40, pentru 100%100\% din punctaj n≤80n \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)

Sursă și autori

ONI 2015, clasele 10. Alexandru Murtaza, Cheșcă Ciprian, Mihai Nițu.

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.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

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…

Un pas, apoi următorul.Înapoi sus ↑