Segmente

Time limit: 0.25s
Memory limit: 128MB
Input: segmente.in
Output: segmente.out

Tibi este un pasionat al matematicii, dar și un artist talentat. În timpul școlii, el a învățat să lucreze cu intervale de numere, pe care le reprezintă vizual pe ciorne cu ajutorul unor segmente colorate și stilizate în diferite moduri pentru o mai bună întelegere a problemei pe care o rezolvă. După ce și-a terminat temele la matematică, pe ciornele sale au rămas o mulțime de segmente de diferite tipuri, fiecare reprezentând un interval închis între numerele din problemele rezolvate. Într-o zi, s-a uitat la ciornele sale și s-a gândit la o problemă pe care vă invită să o rezolvați:

Cerință

Se dă un număr nn de segmente diferite. Fiecare segment 1in1 \leq i \leq n este definit de tipul său (tipitip_i), punctul de start (stist_i) și punctul final (dridr_i). Segmentul include toate punctele din intervalul [sti,dri][st_i , dr_i], inclusiv, și îndeplinește condiția tipiktip_i \leq k, unde kk este numărul total de tipuri diferite. Două segmente sunt considerate conectate dacă au cel puțin un punct comun și sunt de tipuri diferite. Ele fac parte din același grup dacă sunt conectate direct sau printr-o secvență de segmente conectate direct. Sarcina voastră este să determinați numărul de grupuri de segmente care se formează pe fiecare ciornă a lui Tibi.

Date de intrare

Fișierul de intrare segmente.in conține pe prima linie un număr natural tt reprezentând numărul de cazuri de testare (de ciorne). Fiecare are următoarea structură:

  • Prima linie a unui caz de testare conține două numere întregi nn și kk.
  • Pe următoarele nn linii se va afla un triplet de forma (tipi,sti,dritip_i, st_i, dr_i), definind al ii-lea segment din cazul de testare, unde 1in1 \leq i \leq n.

Date de ieșire

Pentru fiecare dintre cazurile de testare, tt, afișați în fișierul de ieșire segmente.out pe o linie separată numărul de grupuri pe care segmentele le formează în acel caz.

Restricții și precizări

  • 1t1 0001 \leq t \leq 1\ 000
  • 1n200 0001 \leq n \leq 200\ 000
  • 1k1 0001 \leq k \leq 1\ 000
  • 1tipi1 0001 \leq tip_i \leq 1\ 000 și 0stidri1090 \leq st_i \leq dr_i \leq 10^9 pentru orice ii de la 11 la nn.
  • Este garantat că suma valorilor lui nn peste toate cazurile de testare (notăm cu n\sum{n}) nu depășește 200 000200\ 000 (toate ciornele lui Tibi nu au mai mult de 200 000200\ 000 de secvențe).
# Punctaj Restricții
1 4 k=1k = 1, n5 000\sum{n} \leq 5\ 000
2 6 k=1k = 1, n>5 000\sum{n} \gt 5\ 000
3 8 k=nk = n, n5 000\sum{n} \leq 5\ 000
4 12 k=nk = n, n>5 000\sum{n} \gt 5\ 000
5 16 k=2k = 2, n5 000\sum{n} \leq 5\ 000
6 24 k=2k = 2, n>5 000\sum{n} \gt 5\ 000
7 12 3k1 0003 \leq k \leq 1\ 000, n5 000\sum{n} \leq 5\ 000
8 18 3k1 0003 \leq k \leq 1\ 000, n>5 000\sum{n} \gt 5\ 000

Exemplu

segmente.in

3
6 3
1 2 5
2 4 9
1 7 12
1 11 15
3 14 18
3 17 20
4 4
1 1 4
3 2 7
4 5 7
2 8 10
7 2
2 3 8
1 13 13
1 1 4
2 5 7
1 8 11
1 10 13
2 12 14

segmente.out

3
2
3

Explicație

În acest caz se formează următoarele conexiuni:

  • Segmentul 11, [2,5][2, 5], este conectat direct cu segmentul 22, [4,9][4, 9] deoarece sunt de tipuri diferite și se intersectează pe intervalul [4,5][4, 5] (au măcar un punct comun).
  • Segmentul 22, [4,9][4, 9], este conectat direct cu segmentul 33, [7,12][7, 12] deoarece sunt de tipuri diferite și se intersectează pe intervalul [7,9][7, 9] (au măcar un punct comun).
  • Segmentul 33 și segmentul 44 au o intersecție nevidă, însă sunt de același tip deci nu sunt conectate direct.
  • Restul segmentelor nu au intersecție comună cu segmentele 11, 22 și 33, astfel segmentele 11, 22 și 33 fac parte din același grup.
  • Segmentul 44, [11,15][11, 15], este conectat direct cu segmentul 55, [14,18][14, 18] deoarece sunt de tipuri diferite și se intersectează pe intervalul [14,15][14, 15] (au măcar un punct comun).
  • Segmentul 44 și segmentul 55 au o intersecție nevidă, însă sunt de același tip deci nu sunt conectate direct.
  • Restul segmentelor rămase nu au intersecție comună cu segmentele 44 și 55, astfel segmentele 44 și 55 fac parte din același grup.
  • Segmentul 66 nu este conectat cu niciun alt segment deci formează singur o grupă.

Astfel, se formează un total de 33 grupuri.

Problem info

ID: 2605

Editors:

Author:

Source: Urmașii lui Moisil 2024 IX: Problema 1

Tags:

Urmașii lui Moisil 2024 IX

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