qvect

Time limit: 0.45s Memory limit: 8MB Input: qvect.in Output: qvect.out

Se consideră NN vectori cu elemente întregi, numerotați de la 11 la NN, sortați crescător, fiecare vector având un număr precizat de elemente.

Cerință

Să se răspundă la QQ întrebări de tipul:

  1. 1 i j — care este minimul dintre modulele diferențelor oricăror două elemente, primul element aparținând vectorului numerotat cu ii, iar cel de al doilea element aparținând vectorului numerotat cu jj?
  2. 2 i j — care este valoarea ce se găsește pe poziția mediană în vectorul obținut prin interclasarea vectorilor având numerele de ordine i,i+1,,ji, i+1, \dots, j, (i<j)(i < j).

Date de intrare

Fişierul de intrare qvect.in conţine pe prima linie două numerele naturale NN și QQ, separate printr-un spațiu, ce reprezintă numărul de vectori, respectiv numărul de întrebări.

Pe fiecare dintre următoarele NN linii se găsește descrierea unui vector sub forma: k,a1,a2,,akk, a_1, a_2, \dots, a_k, unde kk reprezintă numărul de elemente, iar a1,,aka_1, \dots, a_k reprezintă elementele vectorului, separate prin câte un spațiu.

Pe fiecare dintre următoarele QQ linii se găsește descrierea unei întrebări sub forma unui triplet de numere naturale: t,i,jt, i, j, separate prin câte un spațiu, unde tt reprezintă tipul întrebării şi poate lua numai valorile 11 sau 22, iar ii și jj au semnificația precizată în cerinţă.

Date de ieșire

Fişierul de ieşire qvect.out va conţine QQ numere întregi, câte unul pe linie, reprezentând în ordine, răspunsurile la cele QQ întrebări.

Restricții și precizări

  • 1N,i,j1001 \leq N, i, j \leq 100
  • 1Q1 0001 \leq Q \leq 1 \ 000
  • 1t21 \leq t \leq 2
  • 1k5 0001 \leq k \leq 5 \ 000
  • 109a1,a2,,ak109-10^9 \leq a_1, a_2, \dots, a_k \leq 10^9.
  • Prin valoarea aflată pe poziția mediană a unui vector aa cu kk elemente se înțelege valoarea elementului situat pe poziţia k2\lfloor \frac{k}{2} \rfloor, adică partea întreagă a lui k2\frac{k}{2}.
  • 15%15\% dintre teste vor conține numai întrebări de tipul 11.
  • 15%15\% dintre teste vor conține numai întrebări de tipul 22.

Exemplul 1

qvect.in

3 3
7 1 4 5 8 11 18 19
6 2 4 5 10 21 29
4 13 14 15 15
2 2 3
1 2 3
2 1 3

qvect.out

13
3
10

Explicație

Prima întrebare este de tipul 22. Vectorul nou obținut prin interclasarea vectorilor numerotați cu 22 și cu 33 este 2,4,5,10,13,14,15,15,21,292, 4, 5, 10, 13, 14, 15, 15, 21, 29 și conține 6+4=106 + 4 = 10 elemente, valoarea elementului median este 1313.

A doua întrebare este de tipul 11. Diferența minimă se obține pentru perechea (10,13)(10,13), unde valoarea 1010 aparține vectorului numerotat cu 22, iar valoarea 1313 aparține vectorului numerotat cu 33.

A treia întrebare este de tipul 22. Poziția mediană în vectorul nou obținut prin interclasare este 7+6+42=8\frac{7+6+4}{2} = 8, deci valoarea ce se găsește pe poziția mediană este 1010.

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