QOJ.ac

QOJ

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

#114. Construção de rodovias

Statistics

Há $N$ cidades no Reino JOI, numeradas de $1$ a $N$. A cidade 1 é a capital. Cada cidade tem um valor chamado vitalidade, e o valor inicial da vitalidade da cidade $i$ ($1\le i\le N$) é $C_i$.

Uma estrada no Reino JOI liga duas cidades diferentes nos dois sentidos. Inicialmente, não há estradas no Reino JOI. Você planejou $N-1$ construções de estradas. A construção de número $j$ ($1\le j\le N-1$) está planejada da seguinte forma.

  • São indicadas duas cidades, $A_j$ e $B_j$, sendo possível ir da cidade 1 à cidade $A_j$, mas não à cidade $B_j$, usando apenas as estradas já construídas naquele momento.
  • Você constrói uma estrada que liga a cidade $A_j$ à cidade $B_j$. O custo dessa construção é o número de pares de cidades $(s,t)$ que satisfazem as seguintes condições:

    As cidades $s$ e $t$ estão no caminho mais curto entre a cidade 1 e a cidade $A_j$; ao ir da cidade 1 à cidade $A_j$, chega-se à cidade $s$ antes da cidade $t$; e a vitalidade da cidade $s$ é estritamente maior que a da cidade $t$.

    Aqui, as cidades no caminho entre a cidade 1 e a cidade $A_j$ incluem a cidade 1 e a cidade $A_j$. Observe que o caminho mais curto entre a cidade 1 e a cidade $A_j$ é único.

  • Os valores de vitalidade de todas as cidades no caminho entre a cidade 1 e a cidade $A_j$ mudam para o valor de vitalidade da cidade $B_j$.

Você quer saber o custo de cada construção.

Tarefa

Dados os dados das cidades e das construções de estradas, escreva um programa que calcule o custo de cada construção.

Entrada

Leia os seguintes dados da entrada padrão.

  • A primeira linha contém um inteiro $N$. Isso significa que há $N$ cidades no Reino JOI.
  • A segunda linha contém $N$ inteiros separados por espaços, $C_1,C_2,\ldots,C_N$. Isso significa que o valor inicial de vitalidade da cidade $i$ ($1\le i\le N$) é $C_i$.
  • A linha de número $j$ ($1\le j\le N-1$) das $N-1$ linhas seguintes contém dois inteiros separados por um espaço, $A_j,B_j$. Isso significa que as cidades $A_j$ e $B_j$ são indicadas para a construção de estrada de número $j$.

Saída

Escreva $N-1$ linhas na saída padrão. A linha de número $j$ ($1\le j\le N-1$) deve conter o custo da construção de estrada de número $j$.

Restrições

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

  • $1\le N\le100\,000$.
  • $1\le C_i\le1\,000\,000\,000$ ($1\le i\le N$).
  • $1\le A_j\le N$ ($1\le j\le N-1$).
  • $1\le B_j\le N$ ($1\le j\le N-1$).
  • Usando as estradas construídas antes da construção de número $j$, é possível ir da cidade 1 à cidade $A_j$, mas não da cidade 1 à cidade $B_j$ ($1\le j\le N-1$).

Subtarefas

Há 3 subtarefas. A pontuação e as restrições adicionais de cada uma são as seguintes:

Subtarefa 1 [7 pontos]

  • $N\le500$.

Subtarefa 2 [9 pontos]

  • $N\le4000$.

Subtarefa 3 [84 pontos]

Não há restrições adicionais.

Exemplos

Entrada 1

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

Saída 1

0
0
0
2

Nota

No exemplo de entrada 1, as construções são realizadas da seguinte forma:

  • Na primeira construção, não há pares $(s,t)$ que satisfaçam as condições, portanto o custo é $0$. É construída uma estrada que liga a cidade 1 à cidade 2, e a vitalidade da cidade 1 muda para $2$.
  • Na segunda construção, também não há pares $(s,t)$ que satisfaçam as condições, portanto o custo é $0$. É construída uma estrada que liga a cidade 2 à cidade 3, e os valores de vitalidade das cidades 1 e 2 mudam para $3$.
  • Na terceira construção, também não há pares $(s,t)$ que satisfaçam as condições, portanto o custo é $0$. É construída uma estrada que liga a cidade 2 à cidade 4, e os valores de vitalidade das cidades 1 e 2 mudam para $4$.
  • Na quarta construção, dois pares, $(s,t)=(1,3),(2,3)$, satisfazem as condições, portanto o custo é $2$. É construída uma estrada que liga a cidade 3 à cidade 5, e os valores de vitalidade das cidades 1, 2 e 3 mudam para $5$.

Entrada 2

10
1 7 3 4 8 6 2 9 10 5
1 2
1 3
2 4
3 5
2 6
3 7
4 8
5 9
6 10

Saída 2

0
0
0
1
1
0
1
2
3

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.