Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2018-03-19 19:50:40.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:brasov.in, brasov.outSursăConcursul National de Informatica "Adolescent Grigore Moisil" 18
AutorVlad-Andrei MunteanuAdăugată deAGMinformaticaAGMInformatica AGMinformatica
Timp execuţie pe test2.75 secLimită de memorie64000 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Brasov

Aflat la doar o saptamana inaintea inceperii etapei nationale a olimpiadei de informatica, un impatimit fan al acestei competitii, Georgel Tractorescu, isi depaneaza amintirile din anii ce-au trecut alaturi de prieteni la un pahar de suc in Centrul Vechi al orasului Brasov. Acesta isi aminteste cu placere de fiecare clipa petrecuta in acest mediu prielnic dezvoltarii atat pe plan academic, cat si pe plan personal, asa ca doreste sa inchine un pahar de apa in cinstea organizatorilor. Totusi, deoarece nimic nu este perfect, Georgel si-a dat seama de o eroare in regulamentul acestei competitii si vrea sa profite de aceasta pentru a manipula viitoarele rezultate si, cine stie, poate chiar sa va ofere voua locul 1. Fiind insa prea ocupat sa se relaxeze, acesta va propune urmatoarea afacere: oricine il ajuta pe Georgel sa isi duca la bun sfarsit planul, va primi de la acesta 100 de puncte in cadrul concursului "Adolescent Grigore Moisil" si poate 300 de puncte la viitoarea editie a olimpiadei nationale de informatica, iar cine nu va fi nevoit sa se multumeasca cu un Guinness. Deoarece Georgel nu este usor de pacalit (fiti ca Georgel!) acesta nu va da propriu-zis greseala din regulament, ci va cere sa ii implementati un program care sa ii raspunda la un set de cerinte. Stiind ca initial se pleaca de la o functie care este definita pe multimea vida, cerintele sunt dupa cum urmeaza:
* 1 a b - se insereaza intervalul [a, b] in domeniul functiei (I = I U [a, b])
* 0 a b - se sterge intervalul (a, b) din domeniul functiei (I = I \ (a, b))
* MAX - se cere sa se determinea lungimea maxima a unui interval nedegenerat din domeniu, iar in cazul in care nu exista niciun interval, se va afisa -1.
* MIN - se cere sa se determine lungimea minima a unui interval nedegenerat din domeniu, iar in cazul in care nu exista niciun interval, se va afisa -1.
* Diff_min - se cere sa se determina diferenta minima dintre lungimile a doua intervale nedegenerate din domeniu, iar in cazul in care nu exista cel putin doua intervale, se va afisa -1.

1 a b -> I = I U [a, b]
0 a b -> I = I \ (a, b)
MAX -> lungimea maxima a unui interval nedegenerat din I
MIN -> lungimea minima a unui interval nedegenerat din I
Diff_min -> diferente minima dintre lungimile a 2 intervale din I
Diff_max -> lungimea maxima dintre lungimile a 2 intervale din I
2 a b -> cate intervale din i au lungimea cuprinsa intre a si b
(se iau in calcul doar intervalele maximale -> cu alte cuvinte, daca am intervalul nedegenerat [x, y], nu am voie sa iau niciun interval [z, w] cu proprietatea ca [z, w] este inclus in [x, y])

Date de intrare

q - numarul de query uri
q1
q2
q3
...

Date de ieşire

r1
r2
r3
...

În fişierul de ieşire brasov.out ...

Restricţii

  • 1 ≤ q ≤ 500000
  • 1 ≤ op1 + op2 ≤ 200000

Exemplu

brasov.inbrasov.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?