Fillet-O-Fish 1

Time limit: 0.15s Memory limit: 64MB Input: Output:

Peștele de la cap se-mpute!

Cerință

Piedone vă dă un șir vv de NN numere întregi și MM perechi (a,b)(a, b) de întregi. Știind că se pot șterge oricâte numere din vv, să se afle suma maximă, respectiv minimă care se poate obține în șirul final dacă pentru fiecare pereche (a,b)(a, b) dintre cele MM date, elementele cu indicii aa și bb în vv pot sta unul lângă celălalt în șirul final. Dacă perechea (a,b)(a, b) nu este dată, atunci elementele cu indicii aa și bb în vv nu pot sta unul lângă celălalt în șirul final.

Date de intrare

Pe prima linie se vor găsi trei numere întregi: NN și MM. Pe următoarea linie se vor afla NN numere întregi, reprezentând șirul vv. Pe fiecare dintre următoarele MM linii, se vor găsi câte două numere întregi, aa și bb.

Dacă folosiți citire cu std::cin, vă recomandăm să adăugați aceste linii la începutul programului:

std::ios_base::sync_with_stdio(0);
std::cin.tie(0);

Date de ieșire

Pe prima linie se vor găsi două numere, reprezentând cele două răspunsuri (primul este maximul, apoi este minimul).

Restricții și precizări

  • 1N200 0001 \leq N \leq 200 \ 000
  • 109vi109-10^9 \leq v_i \leq 10^9, pentru ii de la 11 la NN.
  • 1Mmin(N(N1)2,200 000)1 \leq M \leq min(\frac{N \cdot (N-1)}{2}, 200 \ 000)
  • 1a,bN,ab1 \leq a,b \leq N, a \not= b
  • Perechile (a,b)(a, b) sunt distincte.
  • Pentru fiecare dintre cele două răspunsuri, dacă este corect, veți primi câte 50%50\% din punctaj.
# Punctaj Restricții
1 10 N20N \leq 20
2 30 N1 000N \leq 1 \ 000
3 60 Fără alte restricții

Exemplu

stdin

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

stdout

13 -8

Explicație

Pentru a obține suma maximă, alegem numerele: 88, 55 (pe pozițiile 11, 33). Am șters numerele de pe pozițiile 22, 44, 55, 66, 77.

Pentru a obține suma minimă, alegem numerele: 2-2, 6-6 (pe pozițiile 55, 77). Am șters numerele de pe pozițiile 11, 22, 33, 44, 66.

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