시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 512 MB | 12 | 5 | 3 | 33.333% |
Fulanito foi jogar um arcade das antigas. No jogo, ele pode colocar uma metralhadora em qualquer lugar da sua base, que consiste de todos os pontos (x, y) com coordenadas inteiras e x < 0. Há N inimigos no campo de batalha. O i-ésimo inimigo (1 ≤ i ≤ N) está na posição (xi, yi) com xi > 0. Todas as posições são dadas de antemão.
Uma metralhadora posicionada em (xm, ym) cobre um ângulo de visão para a direita centrado na reta y = ym, cujos limites são dados pelas retas y = ym ± (x−xm)/2 . Quando colocada, ela atinge todos os inimigos na região delimitada por esse ângulo, incluindo os localizados nas retas-limite.
Figura 1: Representação pictória da entrada de exemplo
O sistema de pontuação usado por esse jogo é desnecessariamente complicado; muitos acreditam que tal sistema foi um grande erro dos desenvolvedores (que, em resposta, afirmam com convicção que “não é um bug, é um recurso!”). Especificamente, a pontuação obtida por um dado posicionamento da metralhadora é calculada executando os seguintes passos:
Para melhorar nesse jogo, Fulanito te faz Q perguntas: cada consulta pede o placar que seria obtido se posicionássemos a metralhadora numa certa posição (xm, ym). Para tornar o problema mais desafiador, os valores de (xm, ym) não são dados diretamente. Ao invés disso, são dados valores a e b que podem ser usados para calcular xm e ym através das fórmulas xm = −1− (p + a) mod (109 + 7) e ym = (p + b) mod (109 + 7), onde p é a resposta da consulta anterior (p = 0 ao processar a primeira consulta).
NOTA: E garantido que a soma do número de inimigos atingidos em todas as consultas é no ´ máximo 106.
A entrada consiste de várias linhas. A primeira linha da entrada contém dois inteiros N, Q (1 ≤ N, Q ≤ 105), o número de inimigos e o número de consultas.
As próximas N linhas da entrada contém dois inteiros cada: xi e yi (1 ≤ xi, yi ≤ 109), as coordenadas da posição do i-ésimo inimigo.
As próximas Q linhas contém dois inteiros cada: Os valores a e b (0 ≤ a, b < 109+7) que especificam cada consulta, como explicado no enunciado
Para cada consulta, imprima um único inteiro contendo a resposta para a consulta.
7 2 2 8 5 7 1 6 4 5 1 3 2 2 4 1 2 3 373785639 373785644
626214369 981053491