Operatii 3

Time limit: 6s Memory limit: 1024MB Input: Output:

Romică a primit de ziua lui un șir ww de nn numere naturale. Uraaa!

Romică, displăcând structurile prăfuite de date cum ar fi șirurile de numere întregi, a decis să facă ceva mai interesant, să considere fiecare index de la 11 la nn ca un nod într-un graf și să înceapă să tragă muchii între ele. Doar că Romică vrea să se provoace un pic, așa că nu va trage muchii în orice mod obișnuit.

Întâi, își propune să creeze o listă de mm triplete de numere aia_i, bib_i, sis_i. Apoi, va efectua următoarea operație (până când nu mai este posibil).

  1. Întâi, determină un ii minim astfel încât aia_i și bib_i se află în componente diferite, și în plus, că suma tuturor nodurilor ww-urilor care se află în aceeași componentă cu aia_i sau bib_i este cel puțin sis_i.
  2. Apoi, trage o muchie între nodurile aia_i și bib_i, și scrie numărul ii în capătul unei liste.

Desigur, dacă Romică încă e la vârsta în care se poate bucura de un șir de n numere naturale, înseamnă că probabil e încă prea tânăr ca să poată să rezolve o asemenea problemă. Ajutați-l, vă rog eu mult de tot, să determine lista cu ordinea în care se vor efectua operațiile!

Date de intrare

Prima linie a datelor de intrare conține doi întregi, nn și mm (1n,m31051 \leq n, m \leq 3 \cdot 10^5): numărul de noduri și numărul de tuplete pe care le are în plan Romică.

A doua linie conține nn numere, anume w1,w2,,wnw_1, w_2, \ldots, w_n, șirul de numere făcut cadou lui Romică (1wi1061 \leq w_i \leq 10^6).

Următoarele mm linii conțin descrierea tupletelor. Fiecare din acestea conțin trei numere întregi, aia_i, bib_i, sis_i (1ai,bin1 \leq a_i, b_i \leq n, 1si1061 \leq s_i \leq 10^6).

Date de ieșire

Pe prima linie a fișierului de ieșire se va afla întâi numărul de operații pe care le-ar efectua Romică. Apoi, se vor afla atâtea numere câte sunt operații, reprezentând lista cerută în cerință.

Restricții și precizări

  • 1n,m31051 \le n, m \le 3 \cdot 10^5;
  • 1wi,si1061 \le w_i, s_i \le 10^6;
  • 1ai,bi,n1 \le a_i, b_i, \le n
Subtask Constrângeri suplimentare Punctaj
1 n,m5000n, m \le 5000 6
2 wiw_i si sis_i sunt generate uniform aleator de la 11 la 10610^6 17
3 Perechiile ai,bia_i, b_i determina un arbore de tip stea 21
4 Perechiile ai,bia_i, b_i determina o padure 23
5 Fără constrângeri suplimentare 33

Exemplul 1

stdin

8 14
17 2 3 1 2 2 3 4
2 7 6
1 6 19
3 1 21
7 2 7
1 3 22
2 3 34
7 5 4
4 8 5
3 8 27
7 8 34
8 4 4
7 5 5
3 8 27
1 6 18

stdout

7
2 3 7 1 8 9 6

Exemplul 2

stdin

14 13
3 2 3 1 3 1 2 15 1 2 2 4 1 3
1 8 23
5 10 4
11 2 39
13 8 16
9 8 42
7 9 2
5 6 6
13 2 20
3 5 33
14 4 4
1 4 37
3 12 28
3 2 4

stdout

13
2 4 6 7 10 13 8 1 12 9 11 3 5

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