A sede das Olimpíadas Nacionais de Informática é um prédio muito alto com exatamente N andares, numerados de 1 a N do mais baixo para o mais alto. Para nos movimentarmos entre andares temos a opção de usar um conjunto de escadas e elevadores. Entre cada par de andares consecutivos existem escadas que demoram exatamente 1 unidade de tempo a serem percorridas (em qualquer sentido).
Há ainda um conjunto de K elevadores. O i-ésimo elevador pode ser usado entre os andares ai e bi, ou seja, podemos entrar neste elevador num andar qualquer entre ai e bi e podemos sair em qualquer andar entre ai e bi. Usar um elevador demora exatamente 1 unidade de tempo, independentemente de quantos andares percorrermos. Podemos ainda considerar que mudar de elevador ou trocar de elevador para escadas é instantâneo, ou seja demora 0 unidades de tempo.
Hoje sabe-se que Q pessoas vão precisar de se movimentar entre andares. A i-ésima pessoa encontra-se no andar ci e quer ir para o andar di e quer fazê-lo no mínimo tempo possível. Determina para cada pessoa o mínimo tempo possível para se deslocar entre cada um dos andares.
Se N = 10, K = 2, Q = 3 e tivermos os seguintes elevadores:
Ou seja, o primeiro elevador desloca-se entre os andares 2 e 5 e o segundo elevador entre os andares 4 e 9, como ilustra a figura seguinte:
Então se tivermos os seguintes pares de andares:
Então os tempos mínimos para cada par são os seguintes:
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 andares | |
1 ≤ K ≤ 100 000 | Número de elevadores | |
1 ≤ Q ≤ 100 000 | Número de pessoas |
Os casos de teste desta parte do problema estão organizados em 5 grupos com restrições adicionais diferentes:
Grupo | Número de Pontos | Restrições adicionais |
---|---|---|
1 | 15 | N, K, Q ≤ 10 |
2 | 20 | N, K, Q ≤ 100 |
3 | 20 | K = 2 |
4 | 25 | ci = 1, ou seja, todos os pares de andares começam no andar 1 |
5 | 20 |
A primeira linha contém três inteiros separados por espaços, primeiro N, representando o número de andares, seguido de K o número de elevadores, seguido de Q o número de pessoas.
Seguem-se K linhas, cada uma contendo dois inteiros separados por espaços, a i-ésima contendo ai e bi, representando os andares entre os quais o i-ésimo elevador se consegue movimentar.
Seguem-se Q linhas, cada uma contendo dois inteiros separados por espaços, a i-ésima contendo ci e di, representando os andares entre os quais a i-ésima pessoa se quer movimentar.
É garantido que todos os ai, bi, ci e di são inteiros entre 1 e N.
O output deve conter Q linhas, cada uma com um inteiro onde a i-ésima deve conter o mínimo tempo possível para a i-ésima pessoa se deslocar entre os seus andares.
10 2 3 2 5 4 9 1 2 5 3 1 10
1 1 4
Este exemplo corresponde ao exemplo mencionado no enunciado.
13 4 5 1 4 6 2 9 12 13 13 1 13 2 7 10 1 5 6 8 8
7 2 6 1 0