feat: new greedy problem formated
This commit is contained in:
7
unconventional-pairs/statement/description.tex
Normal file
7
unconventional-pairs/statement/description.tex
Normal file
@@ -0,0 +1,7 @@
|
||||
Um novo reality show de competição foi lançado na cidade. De acordo com as regras do programa, os participantes devem ser organizados de uma forma específica: dado um número par de pessoas, todos os participantes devem obrigatoriamente ser agrupados em duplas.
|
||||
|
||||
Você recebeu um array de \( n \) inteiros \( a_1, a_2, \ldots, a_n \). Sabe-se que \( n \) é um número par. O objetivo é dividir os participantes em exatamente \( n/2 \) pares \( (a_{p_1}, a_{q_1}), (a_{p_2}, a_{q_2}), \ldots, (a_{p_{n/2}}, a_{q_{n/2}}) \). Cada índice do array original pode pertencer a apenas um único par.
|
||||
|
||||
Para qualquer par \( (x, y) \), a \textbf{diferença} é definida pelo valor absoluto \( |x - y| \). A tarefa é formar as duplas de modo que a \textbf{maior diferença} encontrada entre todos os pares seja a \textbf{mínima possível}.
|
||||
|
||||
Determine o menor valor possível para essa diferença máxima.
|
||||
9
unconventional-pairs/statement/input.tex
Normal file
9
unconventional-pairs/statement/input.tex
Normal file
@@ -0,0 +1,9 @@
|
||||
A entrada consiste em vários casos de teste. A primeira linha contém um único inteiro \( t \) (\( 1 \le t \le 10^4 \)), indicando o número de casos de teste.
|
||||
|
||||
Para cada caso de teste:
|
||||
\begin{itemize}
|
||||
\item A primeira linha contém um número par \( n \) (\( 2 \le n \le 2 \cdot 10^5 \)), representando o comprimento do array \( a \).
|
||||
\item A segunda linha contém \( n \) inteiros \( a_i \) (\( -10^9 \le a_i \le 10^9 \)), representando os valores atribuídos a cada participante.
|
||||
\end{itemize}
|
||||
|
||||
É garantido que a soma de \( n \) em todos os casos de teste não excede \( 2 \cdot 10^5 \).
|
||||
3
unconventional-pairs/statement/notes.tex
Normal file
3
unconventional-pairs/statement/notes.tex
Normal file
@@ -0,0 +1,3 @@
|
||||
No primeiro caso de teste, temos \( n=2 \) e os participantes possuem valores \(\{1, 2\}\). Como só existe uma forma de formar um par, a única diferença possível é \( |1 - 2| = 1 \). Portanto, a maior diferença mínima possível é 1.
|
||||
|
||||
No segundo caso de teste, temos \( n=4 \) com os valores \(\{5, 5, 5, 5\}\). Como todos os participantes possuem o mesmo valor, qualquer par formado terá uma diferença de \( |5 - 5| = 0 \). Assim, a diferença máxima entre todos os pares é 0, que é o valor ótimo.
|
||||
1
unconventional-pairs/statement/output.tex
Normal file
1
unconventional-pairs/statement/output.tex
Normal file
@@ -0,0 +1 @@
|
||||
Para cada caso de teste, imprima um único número inteiro representando o \textbf{valor mínimo possível da diferença máxima} entre os elementos de todos os pares formados.
|
||||
0
unconventional-pairs/statement/preamble.tex
Normal file
0
unconventional-pairs/statement/preamble.tex
Normal file
15
unconventional-pairs/statement/tutorial.tex
Normal file
15
unconventional-pairs/statement/tutorial.tex
Normal file
@@ -0,0 +1,15 @@
|
||||
\subsection*{Resumo da Estratégia}
|
||||
O problema pede para agrupar $n$ elementos em duplas de modo que a maior diferença absoluta entre os membros de qualquer par seja a menor possível. A solução utiliza uma abordagem \textbf{gulosa (greedy)} baseada em ordenação.
|
||||
|
||||
\subsection*{Passos para a Solução}
|
||||
\begin{enumerate}
|
||||
\item \textbf{Ordenação:} Ordene o array $a$ em ordem crescente: $a_1 \le a_2 \le \dots \le a_n$.
|
||||
\item \textbf{Emparelhamento Adjacente:} Para minimizar a diferença entre dois números, eles devem estar o mais próximos possível na reta numérica. Portanto, a melhor estratégia é sempre emparelhar elementos vizinhos na sequência ordenada: $(a_1, a_2), (a_3, a_4), \dots, (a_{n-1}, a_n)$.
|
||||
\item \textbf{Cálculo do Máximo:} Calcule a diferença $d_i = a_{2i} - a_{2i-1}$ para cada par $i$. A resposta final é o valor máximo entre todas essas diferenças.
|
||||
\end{enumerate}
|
||||
|
||||
\subsection*{Complexidade}
|
||||
\begin{itemize}
|
||||
\item \textbf{Tempo:} $O(N \log N)$ devido à ordenação. O cálculo das diferenças é $O(N)$.
|
||||
\item \textbf{Espaço:} $O(N)$ para armazenar os elementos do array.
|
||||
\end{itemize}
|
||||
Reference in New Issue
Block a user