QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 256 MB Total points: 100

#367. Mansão comprida

Statistics

Há uma mansão espaçosa perto da casa de JOI-kun. A mansão tem $N$ salas dispostas em fila de leste para oeste. A $i$-ésima sala a contar da mais a leste é chamada sala $i$. Para cada $i$ com $1 \le i \le N-1$, as salas $i$ e $i+1$ estão ligadas por um corredor. Os corredores podem ser percorridos nos dois sentidos. É necessária uma chave para entrar num corredor a partir de uma sala. Cada chave tem um número chamado tipo. Várias chaves podem ter o mesmo tipo.

A partir da sala $i$ ou da sala $i+1$, é necessária uma chave do tipo $C_i$ para entrar no corredor entre elas.

Há $B_i$ chaves na sala $i$. Os seus tipos são $A_{i,j}$ ($1 \le j \le B_i$). Quando JOI-kun entra numa sala, recolhe todas as chaves que lá estão. A partir daí, pode usá-las para entrar nos corredores.

JOI-kun pode usar as chaves quantas vezes quiser. Por vezes, obtém várias chaves do mesmo tipo. Contudo, ter várias chaves do mesmo tipo não lhe dá qualquer vantagem especial em relação a ter apenas uma desse tipo.

Para lidar com a possibilidade de se perder na mansão, JOI-kun planeia escrever um programa que responda às seguintes consultas:

  • Se JOI-kun entrar na sala $x$ sem nenhuma chave, consegue deslocar-se até à sala $y$?

A sua tarefa é escrever um programa que responda a estas consultas no lugar de JOI-kun.

Tarefa

Dadas as informações sobre a mansão e as consultas, escreva um programa que determine, para cada consulta, se ele consegue deslocar-se de uma sala para outra, supondo que está inicialmente na mansão sem nenhuma chave.

Entrada

Leia os seguintes dados da entrada padrão.

  • A primeira linha contém um inteiro $N$, o número de salas da mansão.
  • A segunda linha contém $N-1$ inteiros $C_1,C_2,\ldots,C_{N-1}$ separados por espaços. Isto significa que é necessária uma chave do tipo $C_i$ para entrar no corredor que liga as salas $i$ e $i+1$.
  • A linha $i$ ($1 \le i \le N$) das $N$ linhas seguintes contém um inteiro positivo $B_i$ e $B_i$ inteiros $A_{i,1},A_{i,2},\ldots,A_{i,B_i}$ separados por espaços. Isto significa que há $B_i$ chaves na sala $i$, cujos tipos são $A_{i,j}$ ($1 \le j \le B_i$).
  • A linha seguinte contém um inteiro $Q$, o número de consultas.
  • A linha $k$ ($1 \le k \le Q$) das $Q$ linhas seguintes contém dois inteiros $X_k,Y_k$ separados por um espaço. Isto significa que a consulta $k$ pergunta se JOI-kun consegue deslocar-se da sala $X_k$ até à sala $Y_k$, supondo que está inicialmente na sala $X_k$ sem nenhuma chave.

Saída

Escreva $Q$ linhas na saída padrão. A linha $k$ ($1 \le k \le Q$) contém YES se ele conseguir deslocar-se da sala $X_k$ até à sala $Y_k$, supondo que está inicialmente na sala $X_k$ sem nenhuma chave. Caso contrário, contém NO.

Restrições

Todos os dados de entrada satisfazem as seguintes condições.

  • $2 \le N \le 500\,000$.
  • $1 \le Q \le 500\,000$.
  • $1 \le B_1+B_2+\cdots+B_N \le 500\,000$.
  • $1 \le B_i \le N$ ($1 \le i \le N$).
  • $1 \le C_i \le N$ ($1 \le i \le N-1$).
  • $1 \le A_{i,j} \le N$ ($1 \le i \le N$, $1 \le j \le B_i$).
  • Os $B_i$ inteiros $A_{i,1},\ldots,A_{i,B_i}$ são distintos entre si ($1 \le i \le N$).
  • $1 \le X_k \le N$ ($1 \le k \le Q$).
  • $1 \le Y_k \le N$ ($1 \le k \le Q$).
  • $X_k\ne Y_k$ ($1 \le k \le Q$).

Subtarefas

Esta tarefa tem 4 subtarefas ao todo. A pontuação e as restrições adicionais de cada uma são as seguintes:

Subtarefa 1 [5 pontos]

  • $N \le 5\,000$.
  • $Q \le 5\,000$.
  • $B_1+B_2+\cdots+B_N \le 5\,000$.

Subtarefa 2 [5 pontos]

  • $N \le 5\,000$.
  • $B_1+B_2+\cdots+B_N \le 5\,000$.

Subtarefa 3 [15 pontos]

  • $N \le 100\,000$.
  • $C_i \le 20$ ($1 \le i \le N-1$).
  • $A_{i,j} \le 20$ ($1 \le i \le N$, $1 \le j \le B_i$).

Subtarefa 4 [75 pontos]

Não há restrições adicionais.

Exemplos

Entrada 1

5
1 2 3 4
2 2 3
1 1
1 1
1 3
1 4
4
2 4
4 2
1 5
5 3

Saída 1

YES
NO
NO
YES

Explicação

  • Na primeira consulta, se JOI-kun visitar as salas $2,1,2,3,4$ por esta ordem, chega à sala $4$.
  • Na segunda consulta, só pode visitar as salas $3$ e $4$. Como só consegue obter chaves dos tipos $1$ e $3$, não consegue chegar à sala $2$.
  • Na terceira consulta, não consegue obter uma chave do tipo $4$ da sala $5$ até à sala $4$. Por isso, não consegue chegar à sala $5$.
  • Na quarta consulta, se visitar as salas $5,4,3$ por esta ordem, chega à sala $3$.

Entrada 2

5
2 3 1 3
1 3
1 2
1 1
1 3
1 2
4
1 3
3 1
4 3
2 5

Saída 2

NO
YES
NO
YES

Entrada 3

7
6 3 4 1 2 5
1 1
1 5
1 1
1 1
2 2 3
1 4
1 6
3
4 1
5 3
4 7

Saída 3

YES
NO
YES

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.