A Cláudia é uma das principais organizadoras das Olimpíadas Nacionais de Informática. Como parte da organização da prova de qualificação das olimpíadas, a Cláudia tem N tarefas a efetuar. Cada tarefa tem um horário que é um intervalo de tempo, ou seja, a i-ésima tarefa tem de ser desempenhada entre as ai e as bi horas. A Cláudia só consegue realizar uma tarefa de cada vez, por isso se duas tarefas se sobrepuserem ela só consegue fazer uma de cada vez.
A Claúdia sabe que é possível que não consiga terminar todas as tarefas visto que pode haver sobreposições, mas ela quer efetuar o máximo número de tarefas possível. Determina o máximo número de tarefas que a Cláudia consegue desempenhar.
Se N = 5 e tivermos o seguinte horário de tarefas:
Que é pode ser visualizado da seguinte forma:
A tarefa 2 sobrepõe-se às tarefas 3 e 4, mas as restantes tarefas não têm sobreposições. Por isso a Cláudia pode efetuar as tarefas 1, 3, 4 e 5, para um total de 4 tarefas. A figura seguinte ilustra esta solução:
São garantidos os seguintes limites em todos os casos de teste desta parte que irão ser colocados ao programa:
1 ≤ N ≤ 100 000 | Número de tarefas | |
1 ≤ ai < bi ≤ 1 000 000 | Horários das tarefas |
Os casos de teste desta parte do problema estão organizados em dois grupos:
Grupo | Número de Pontos | Restrições adicionais |
---|---|---|
1 | 25 | N ≤ 1 000 |
2 | 25 |
Para a ajudar a completar todas as tarefas, a Cláudia usou os seus conhecimentos informáticos para construir um robot que consegue efetuar qualquer uma das tarefas. Assim como a Cláudia, o robot só consegue fazer uma de cada vez.
A qualquer altura a Cláudia pode ativar o robot e quando não o quiser utilizar mais pode desligá-lo (não podendo voltar a ligá-lo novamente). Como o robot tem bateria limitada, a Cláudia quer determinar a duração do intervalo de tempo mais curto em que o robot tem de estar ligado para que ele e a Cláudia consigam terminar todas as tarefas ou determinar que não é possível os dois efetuarem todas as tarefas. Caso não seja possível efetuar todas as tarefas o output do teu programa deve ser -1.
Se N = 5 e tivermos o seguinte horário de tarefas:
Que é pode ser visualizado da seguinte forma:
A tarefa 2 sobrepõe-se às tarefas 3 e 4, mas as restantes tarefas não têm sobreposições. Por isso a Cláudia pode efetuar as tarefas 1, 2 e 5 e deixar o robot efetuar as tarefas 3 e 4. Para isso o robot só precisa de estar ligado entre as 5 e as 8 horas, para um total de 3 horas. A figura seguinte ilustra esta solução:
São garantidos os seguintes limites em todos os casos de teste desta parte que irão ser colocados ao programa:
1 ≤ N ≤ 100 000 | Número de tarefas | |
1 ≤ ai < bi ≤ 1 000 000 | Horários das tarefas |
Os casos de teste desta parte do problema estão organizados em dois grupos:
Grupo | Número de Pontos | Restrições adicionais |
---|---|---|
3 | 25 | N ≤ 100 |
4 | 25 |
Os casos de teste do problema estão organizados em 4 grupos com restrições adicionais diferentes:
Grupo | Número de Pontos | Parte | Restrições adicionais |
---|---|---|---|
1 | 25 | Parte I | N ≤ 1 000 |
2 | 25 | Parte I | |
3 | 25 | Parte II | N ≤ 100 |
4 | 25 | Parte II |
A primeira linha contém um inteiro P, que representa a parte que o caso de teste representa. Se for 1, então o caso de teste refere-se à Parte I, se for 2 então refere-se à Parte II.
Segue-se uma linha com um inteiro N, representando o número de tarefas.
Seguem-se N linhas, cada uma contendo dois inteiros separados por espaços, a i-ésima contendo ai e bi, representando o intervalo de tempo para a i-ésima tarefa.
O output deve conter uma linha contendo o número máximo de tarefas que a Cláudia consegue efetuar.
O output deve conter uma linha contendo o a duração do intervalo de tempo mais curto em que o robot tem de estar ligado para que ele e a Cláudia consigam terminar todas as tarefas ou determinar que não é possível os dois efetuarem todas as tarefas. Caso não seja possível efetuar todas as tarefas o output do teu programa deve ser -1.
1 5 2 5 5 10 5 6 7 8 10 12
4
Este exemplo corresponde ao exemplo mencionado no enunciado da Parte I.
2 5 2 5 5 10 5 6 7 8 10 12
3
Este exemplo corresponde ao exemplo mencionado no enunciado da Parte II.