Cladiri

Time limit: 1s Memory limit: 128MB Input: cladiri.in Output: cladiri.out

Ciprian stătea pe treapta din fața școlii, cu caietul deschis şi cu pixul pregătit să noteze idei. Zilele trecute intraseră într-o competiție de informatică regională, iar tema lui de suflet era optimizarea: găsirea celei mai bune soluții pentru probleme aparent simple, dar cu mii de erori ascunse.

Într-o seară, la laboratorul de informatică, profesorul de informatică, Marian, a desenat pe tablă două șiruri de numere: înălțimile clădirilor de pe bulevard, H1,H2,,HnH_{1}, H_{2}, \ldots, H_{n}, și profiturile, W1,W2,,WnW_{1}, W_{2}, \ldots, W_{n}. „Imaginați-vă că vreți să alegeți un segment continuu de clădiri pe care să îl închiriați pentru un festival stradal.” explică el. „Însă contractul cere ca toate clădirile să aibă cel puțin înălțimea TT, iar profitul vostru să fie cât mai mare posibil.”

Ciprian a început imediat să-și imagineze cartierul: clădiri vechi cu fațade colorate, unele zgârie-nori eleganți, altele case modeste cu un etaj. Fiecare clădire era caracterizată de două valori: înălțimea și profitul zilnic. Pentru fiecare prag TT dat de organizatorii festivalului, el trebuia să răspundă rapid care e suma maximă a profiturilor pe care o putea obține selectând un interval de clădiri cu toate înălțimile mai mari sau egale cu TT.

Cerință

Fiind date NN, QQ, HiH_{i} și WiW_{i} pentru 1iN1 \leq i \leq N, răspunde la QQ întrebări de următorul fel: fie pragul TT, găsește cea mai mare sumă a costurilor unui segment continuu de clădiri [L,R]\left[L, R\right], astfel încât toate clădirile din acel segment să aibă înălțimea cel puțin TT.

Date de intrare

Fișierul de intrare cladiri.in conține:

  • pe prima linie două numere naturale, NN și QQ, cu semnificația din enunț;
  • pe următoarea linie NN numere naturale, al ii-lea număr corespunde lui HiH_{i};
  • pe următoarea linie NN numere naturale, al ii-lea număr corespunde lui WiW_{i};
  • pe următoarele QQ linii, QQ numere naturale, câte unul pe fiecare linie, care corespunde TT-ului din cerință.

Date de ieșire

Pentru fiecare 1iQ1 \leq i \leq Q, afișează în cladiri.out pe câte o linie un număr: costul maxim al unui segment de clădiri [L,R]\left[L, R\right], cu toate înălțimile mai mari sau egale cu TiT_{i}, sau 00 dacă nu există niciun segment valid.

Restricții și precizări

  • 1N,Q21051 \leq N, Q \leq 2 \cdot 10^{5};
  • 1Hi109,1iN1 \leq H_{i} \leq 10^{9}, 1 \leq i \leq N;
  • 1Wi106,1iN1 \leq W_{i} \leq 10^{6}, 1 \leq i \leq N;
  • 1Ti109,1iN1 \leq T_{i} \leq 10^{9}, 1 \leq i \leq N;
# Punctaj Restricții
1 20 N,Q103,Hi,Wi100,1iNN, Q \leq 10^{3}, H_{i}, W_{i} \leq 100, 1 \leq i \leq N
2 30 N,Q105,Hi,Wi103,1iNN, Q \leq 10^{5}, H_{i}, W_{i} \leq 10^{3}, 1 \leq i \leq N
3 50 Fără restricții suplimentare

Exemplu

cladiri.in

8 5
2 1 4 3 5 2 6 4
3 2 1 4 5 1 2 3
1
3
4
5
7	

cladiri.out

21
10
5
5
0

Explicație

Pentru prima întrebare, T=1T = 1, orice clădire convine. Costul maxim este 3+2+1+4+5+1+2+3=213 + 2 + 1 + 4 + 5 + 1 + 2 + 3 = 21.
Pentru a doua întrebare, T=3T = 3, pozițiile eligibile sunt {1,3,4,5,7,8}\left\{1, 3, 4, 5, 7, 8\right\}. Segmente valide: [1,1]\left[1,1\right], cu suma 3, [3,5]\left[3,5\right], cu suma 10, [7,8]\left[7, 8\right], cu suma 5. Suma maximă este 10, pe segmentul [3,5]\left[3, 5\right].
Pentru a patra întrebare, T=5T = 5, pozițiile eligibile sunt {5,7}\left\{5, 7\right\}. Segmente valide: [5,5]\left[5,5\right], cu suma 5, [7,7]\left[7,7\right], cu suma 2. Suma maximă este 5, pe segmentul [5,5]\left[5, 5\right].
Pentru a cincea întrebare, T=7T = 7, nu există clădiri care să aibe înălțimea mai mare sau egală cu 7. Vom afișa 0.

Log in or sign up to be able to send submissions!