2443 - Cb2

From Bitnami MediaWiki
Revision as of 13:19, 10 December 2023 by Raul (talk | contribs) (Pagină nouă: Se consideră un șir de numere naturale nenule <code>a[1]</code>, <code>a[2]</code>, …, <code>a[n]</code>. Asupra șirului se efectuează <code>Q</code> interogări. Fiecare interogare este dată de o pereche <code>(x, s)</code>: care este indicele maxim <code>p</code> cu proprietatea că <code>a[i] ≤ x</code>, pentru orice <code>i=1..p</code> și în plus <code>a[1] + a[2] + ... + a[p] ≤ s</code>? = Cerința = Trebuie să răspundeți la fiecare din cele <code>Q</cod...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Se consideră un șir de numere naturale nenule a[1], a[2], …, a[n]. Asupra șirului se efectuează Q interogări. Fiecare interogare este dată de o pereche (x, s): care este indicele maxim p cu proprietatea că a[i] ≤ x, pentru orice i=1..p și în plus a[1] + a[2] + ... + a[p] ≤ s?

Cerința[edit | edit source]

Trebuie să răspundeți la fiecare din cele Q întrebări.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații, reprezentând elementele șirului. Apoi se citește valoarea Q și la final se citesc Q perechi de forma (x, s) reprezentând întrebările.

Date de ieșire[edit | edit source]

Programul va afișa pe câte o linie la ecran Q valori reprezentând răspunsurile la întrebări.

Restricții și precizări[edit | edit source]

  • 1 ≤ n ≤ 100.000
  • 1 ≤ Q ≤ 100.000
  • 1 ≤ a[i] ≤ 1.000 pentru orice i=1..n
  • pentru fiecare întrebare, 1 ≤ x, s ≤ 1.000.000.000

Exemplu:[edit | edit source]

Intrare

9
5 3 1 7 4 9 8 2 6
6
8 10
4 20
6 20
6 8
10 100
10 20

Ieșire

3
0
3
2
9
5

Explicație[edit | edit source]

La prima întrebare, x=8, s=10. Indicele maxim este 3 pentru că primele trei valori din șir sunt mai mici sau egale cu 8, iar 5 + 3 + 1 ≤ 10.

La a doua întrebare, răspunsul este 0 deoarece primul număr din șir este 5 care este mai mare decât x=4.

La a cincea întrebare, x=10 și s=100. Răspunsul este chiar lungimea șirului.

Încărcare soluție[edit | edit source]

Lipește codul aici[edit | edit source]

1

​let a;
let s = 0;
let i = 1;
a = prompt();
s += a.charCodeAt(0);
while (a !== '.') {
    a = prompt();
    if (a === '.') {
        break;
    } else {
        s += a.charCodeAt(0);
        i++;
    }
}
console.log(String.fromCharCode(Math.floor(s / i)));