Rezolvare PBinfo #1591

Decorative Icon Problema: Intervalxy / 1591

Decorative IconAutor: Darius

Se dă un şir de N numere întregi. Definim costul intervalului [x, y], unde x si y apartin {1, 2, …, N}, ca fiind suma diferenţelor dintre numărul maxim din șir, aflat în interval şi restul numerelor aflate pe pozițiile x, x+1, …, y.
De exemplu, pentru şirul 2 4 7 4 3 -1 2 4 6 costul intervalului [3, 6] este 15. (explicație: 7-7+ 7-4 + 7-3 + 7+1 = 15).

Se definesc M operaţii de forma tip x y, astfel: Dacă tip este 1, atunci elementul de pe poziţia x din șir devine y. Dacă tip este 2, atunci să se afişeze costul intervalului [x, y];

Cerința

Să se determine răspunsul pentru fiecare operaţie de tipul 2.

Date de intrare

Fişierul de intrare intervalxy.in conţine:

  • Pe prima linie un număr natural N;
  • Pe cea de-a doua linie se află N numere, reprezentând elementele şirului;
  • Pe a treia linie se află un număr natural M.
  • Pe următoarele M linii se află câte un triplet tip x y cu proprietatea din enunţ.
Date de ieșire

Fişierul de iesire intervalxy.out conţine K linii, reprezentând răspunsul pentru fiecare operaţie de tipul 2, K fiind numărul de operaţii de tip 2 din fişierul de intrare.

Restricții și precizări
  • 2 <= N <= 100.000
  • 1 <= M <= 100.000
  • -100.000 <= elementele şirului <= 100.000
  • Pentru 25% din punctaj, 1 <= N <= 5.000 şi 1 <= M <= 10.000
Exemplu:

intervalxy.in

10
2 -4 3 7 1 -2 -1 3 5 8
6
2 1 4
1 2 0
1 4 6
1 7 3
2 4 6
2 3 8

intervalxy.out

20
13
22

Explicație

Pentru prima întrebare intervalul căutat este : 2 -4 3 7, cu costul
(7-2)+(7+4)+(7-3)+(7-7) = 20

Pentru a doua întrebare, intervalul căutat este: 6 1 -2, cu costul
(6-6)+(6-1)+(6+2) = 13

Pentru a treia întrebare, intervalul căutat este: 3 6 1 -2 3 3, cu costul
(6-3)+(6-6)+(6-1)+(6+2)+(6-3)+(6-3) = 22

Decorative Icon Explică rezolvarea folosind Inteligența Artificială

Folosește modelul nostru de AI special antrenament pentru a rezolva problemele de pe PBinfo! În baza creditelor AI primești explicații pentru probleme, pe care le alegi și le rulezi exact atunci când dorești, la un singur click distanță! Află mai multe informații:

👉 Achiziționează credite AI
Andrei Frîntu
Andrei Frîntu

Fondatorul platformei - mentor Academia

LinkedIn Instagram GitHub
© Copyright 2024 - CodulLuiAndrei.ro - Toate drepturile sunt rezervate