ConcursC++17

changemin

Dat fiind un șir de NN numere naturale A1,A2,…,ANA_1, A_2, \ldots, A_N, 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 cnt\mathit{cnt} la sfârșitul algoritmului?
  • Care este valoarea lui score\mathit{score} la sfârșitul algoritmului, modulo 666 013666 \ 013?

Date de intrare

Pe prima linie a fișierului de intrare changemin.in se află numerele naturale TT și NN, 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ă NN numere naturale separate printr-un spațiu, reprezentând numerele A1,A2,…,ANA_1, A_2, \ldots, A_N.

Date de ieșire

Fișierul de ieșire changemin.out va conține:

  • Pentru T=1T = 1: un singur număr natural, reprezentând valoarea lui cntcnt la finalul execuției algoritmului;
  • Pentru T=2T = 2: un singur număr natural, reprezentând valoarea lui scorescore la finalul execuției algoritmului, modulo 666 013666 \ 013.

Restricții și precizări

  • T∈{1,2}T \in \{1, 2\}
  • 1≤N≤1 000 0001 \leq N \leq 1 \ 000 \ 000
  • 1≤Ai≤1 000 000 0001 \leq A_i \leq 1 \ 000 \ 000 \ 000 pentru oricare 1≤i≤N1 \leq i \leq N
#PunctajRestricții
16T=1T = 1 și N≤1 000N \leq 1 \ 000
29T=1T = 1 și Ai≤2A_i \leq 2
321T=1T = 1, N≤100 000N \leq 100 \ 000 și Ai≤200A_i \leq 200
424T=1T = 1
54T=2T = 2 și N≤1 000N \leq 1 \ 000
66T=2T = 2 și Ai≤2A_i \leq 2
711T=2T = 2, N≤100 000N \leq 100 \ 000 și Ai≤200A_i \leq 200
819T=2T = 2

Exemplul 1

changemin.in

1 5
3 4 2 2 1

changemin.out

11

Explicație

cntcnt este incrementată de 1111 ori pe parcursul execuției algoritmului

Exemplul 2

changemin.in

2 5
3 4 2 2 1

changemin.out

103

Explicație

scorescore este obținută astfel: score=3⋅1+2⋅2+1⋅3+4⋅4+2⋅5+1⋅6+2⋅7+1⋅8+2⋅9+1⋅10+1⋅11score = 3 \cdot 1 + 2 \cdot 2 + 1 \cdot 3 + 4 \cdot 4 + 2 \cdot 5 + 1 \cdot 6 + 2 \cdot 7 + 1 \cdot 8 + 2 \cdot 9 + 1 \cdot 10 + 1 \cdot 11

Sursă și autori

ONI 2022, clasele 10. Bogdan-Ioan Popa.

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 ↑