2443 - Cb2
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 oricei=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)));