DificilăC++17

Săli de ședință cu amânare

Cerință

Există r săli, numerotate 1..r. Ședințele au intervale [s,e), iar momentele inițiale s sunt distincte. Procesează-le după s crescător. La momentul s, folosește sala liberă cu numărul cel mai mic. Dacă toate sunt ocupate, amână ședința până când prima sală devine liberă, păstrând durata e-s; la egalitate alege numărul cel mai mic. Află sala care găzduiește cele mai multe ședințe; la egalitate alege numărul minim.

Tip de problemă: Meeting Rooms III.

Date de intrare

Prima linie: r și n. Urmează n perechi s e, în orice ordine.

Date de ieșire

Afișează numărul sălii cerute.

Restricții

1 ≤ r ≤ 100; 1 ≤ n ≤ 2000; 0 ≤ s < e ≤ 1000000000. Momentele de început sunt distincte. Folosește 64 de biți pentru sfârșiturile amânate.

Observații

Raportată de un candidat: Meeting Rooms III la Google (L5, India, octombrie 2024).

Adaptare Algo25: Sălile sunt numerotate de la 1; limitele permit o soluție prin scanarea sălilor.

Sursa relatării: https://leetcode.com/discuss/post/6324177/Google-or-L5-or-October-2024-or-India/

Exemple

2 EXEMPLE

Exemplul 1

Exemplul 1 pentru „Săli de ședință cu amânare”. Verde: ora inițială se păstrează. Portocaliu: ședința este amânată, cu aceeași durată. Intervalul [s,e) include începutul și exclude sfârșitul: sala este liberă chiar la momentul e.Exemplul 1, reprezentat vizual. Verde: ora inițială se păstrează. Portocaliu: ședința este amânată, cu aceeași durată.Mărește schema ↗

Date de intrare

2 4
0 8
1 4
2 5
3 6

Date de ieșire

2

Exemplul 2

Date de intrare

2 3
5 7
0 2
2 4

Date de ieșire

1
UN MIC IMPULS

Ai nevoie de un indiciu?

Descoperă doar cât îți trebuie. Indiciile nu scad punctajul.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Se verifică autentificarea…

Deschide atelierul cu sugestii și teste locale în 4 limbaje →

Un pas, apoi următorul.Înapoi sus ↑