Time limit: 0.4s
Memory limit: 512MB
Input: changemin.in
Output: changemin.out
Dat fiind un șir de numere naturale , considerăm următorul algoritm, prezentat în pseudocod:
cnt ← 0
score ← 0
pentru i de la 1 la N execută
min ← ∞
pentru j de la i la N executa
daca A[j] < min atunci
min ← A[j]
cnt ← cnt + 1
score ← score + cnt · A[j]
sfarsit_daca
sfarsit_pentru
sfarsit_pentru
- Care este valoarea lui la sfârșitul algoritmului?
- Care este valoarea lui la sfârșitul algoritmului, modulo ?
Date de intrare
Pe prima linie a fișierului de intrare changemin.in
se află numerele naturale și , separate printr-un spațiu, reprezentând cerința care trebuie rezolvată, respectiv numărul de numere ce urmează a fi citite.
Pe următoarea linie se află numere naturale separate printr-un spațiu, reprezentând numerele .
Date de ieșire
Fișierul de ieșire changemin.out
va conține:
- Pentru : un singur număr natural, reprezentând valoarea lui la finalul execuției algoritmului;
- Pentru : un singur număr natural, reprezentând valoarea lui la finalul execuției algoritmului, modulo .
Restricții și precizări
- pentru oricare
# | Punctaj | Restricții |
---|---|---|
1 | 6 | și |
2 | 9 | și |
3 | 21 | , și |
4 | 24 | |
5 | 4 | și |
6 | 6 | și |
7 | 11 | , și |
8 | 19 |
Exemplul 1
changemin.in
1 5
3 4 2 2 1
changemin.out
11
Explicație
este incrementată de ori pe parcursul execuției algoritmului
Exemplul 2
changemin.in
2 5
3 4 2 2 1
changemin.out
103
Explicație
este obținută astfel: