fix: removing duplicated tests and correcting some small solutions

This commit is contained in:
2026-05-04 15:35:34 -03:00
parent 9c0eca4a3f
commit c2d1d60303
129 changed files with 255835 additions and 255622 deletions

1
.gitignore vendored
View File

@@ -15,3 +15,4 @@ build_debug*
# my stuff
.venv
contest-tools
link.sh

View File

@@ -0,0 +1,51 @@
\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsthm,amssymb}
\usepackage{fullpage}
\usepackage{url}
\pagenumbering{gobble}
\usepackage{hyperref}
\usepackage{graphicx}
\input{statement/preamble.tex}
\title{ Tutorial: Caching Offline}
\author{}
\date{}
\begin{document}
\maketitle
O problema consiste em simular um gerenciador de cache e determinar o número mínimo de falhas de página. Como a sequência completa de requisições é conhecida previamente, podemos utilizar uma estratégia gulosa para resolver o problema.
\subsection*{Representação do estado}
\begin{itemize}
\item A memória principal (cache) é representada por um conjunto (\textit{hash set}), que armazena os identificadores das páginas atualmente carregadas, permitindo consultas em tempo constante.
\item O histórico futuro de cada página é mapeado em vetores, registrando todos os índices (momentos no tempo) em que cada página será requisitada.
\item Um vetor de ponteiros auxiliares acompanha qual a próxima ocorrência futura correspondente para cada página.
\end{itemize}
\subsection*{Estratégia de solução usando Algoritmo Guloso}
A estratégia ótima dita que, quando a cache estiver cheia e ocorrer uma falha, a página a ser substituída deve ser aquela que demorará mais tempo para ser referenciada novamente no futuro.
\begin{enumerate}
\item Leia a capacidade da cache ($k$) e o tamanho da sequência de requisições ($v$).
\item Faça um pré-processamento da sequência de páginas:
\begin{itemize}
\item Armazene a sequência original em um vetor.
\item Para cada página lida, adicione o índice atual à sua respectiva lista de referências futuras.
\end{itemize}
\item Inicialize a cache vazia, o controle de progresso das referências futuras e o contador de falhas (\textit{misses}).
\item Percorra a sequência de requisições passo a passo:
\begin{itemize}
\item Se a página atual \textbf{não} estiver na cache, ocorreu uma falha de página. Incremente o contador de \textit{misses}.
\item Se a cache já estiver cheia (tamanho igual a $k$) no momento da falha, é necessário eleger uma página residente para remoção:
\begin{itemize}
\item Inspecione todas as páginas atualmente na cache.
\item Se alguma página não possuir mais requisições futuras, ela é a candidata ideal e deve ser escolhida para remoção imediata.
\item Caso contrário, compare a próxima requisição de todas e encontre aquela que vai demorar mais tempo para aparecer de novo (índice mais distante no futuro), removendo-a.
\end{itemize}
\item Insira a nova página na cache.
\item Ao final de cada iteração, independentemente de ter ocorrido acerto ou falha, avance o ponteiro de ocorrências da página que acabou de ser processada.
\end{itemize}
\item Ao término da simulação, imprima o total de falhas contabilizadas.
\end{enumerate}\end{document}

Binary file not shown.

View File

@@ -0,0 +1,52 @@
\documentclass{maratona}
\begin{document}
\begin{ProblemaAutor}{}{Caching Offline}{1}{256}{}
Dado um sistema com memória principal dividida em \( k \) frames, deseja-se gerenciar uma sequência de requisições de páginas de modo a minimizar falhas de memória (\textit{cache misses}).
Considere que a sequência de páginas referenciadas \( (v_0, v_1, \ldots, v_{n-1}) \) é conhecida a priori, onde cada \( v_i \) representa o identificador de uma página. Inicialmente, a cache (memória principal) encontra-se vazia.
O objetivo é projetar um algoritmo que determine a \textbf{menor quantidade possível de falhas de página} para a sequência dada. Uma falha ocorre sempre que uma página referenciada não está presente em um dos \( k \) frames disponíveis. Se a cache estiver cheia e uma nova página precisar ser carregada, uma das páginas residentes deve ser substituída.
\Entrada
A entrada é composta por duas linhas.
A primeira linha contém dois inteiros: \( k \) (\( 1 \le k \le 1000 \)), representando a quantidade de frames disponíveis na memória, e \( n \) (\( 1 \le n \le 1000 \)), representando o número total de referências na sequência de páginas.
A segunda linha contém \( n \) inteiros positivos \( v_i \) (\( 1 \le v_i \le 1000 \)), representando os identificadores de cada página na sequência de referências.
\Saida
A saída deve conter uma única linha.
Deve ser impresso um único inteiro representando o \textbf{menor número de falhas de página} (\textit{cache misses}) que podem ser obtidos para a sequência e capacidade de memória fornecidas.
\ExemploEntrada
\begin{Exemplo}
\texttt{1~3} & \texttt{3}\\
\texttt{1~2~3} & \\
\rowcolor{gray!20}\texttt{2~5} & \texttt{3}\\
\rowcolor{gray!20}\texttt{1~2~3~1~1} & \\
\texttt{5~10} & \texttt{5}\\
\texttt{1~2~3~4~5~5~4~3~2~1} & \\
\end{Exemplo}
\Notas
No primeiro caso de teste, temos \( k=1 \) frame e uma sequência de 3 referências: \((1, 2, 3)\). Como a memória só pode comportar uma página por vez e todas as referências são para páginas diferentes, cada nova requisição resultará em uma falha (\textit{miss}) para carregar a página atual e substituir a anterior. Portanto, o total de falhas é 3.
No segundo caso, a memória possui \( k=2 \) frames e a sequência é \((1, 2, 3, 1, 1)\).
\begin{itemize}
\item As páginas 1 e 2 são carregadas inicialmente, causando 2 falhas.
\item Quando a página 3 é requisitada, a memória está cheia, com as páginas \{1, 2\}. Substitui-se a página 2 pela 3, \{1, 3\}.
\item As referências subsequentes para a página 1 já estão na memória.
\item O número mínimo de falhas é 3.
\end{itemize}
No terceiro caso, com \( k=5 \) frames e a sequência \((1, 2, 3, 4, 5, 5, 4, 3, 2, 1)\), o número de páginas distintas na sequência é exatamente 5. Como a capacidade da memória é suficiente para manter todas as páginas únicas da sequência simultaneamente, ocorrem apenas as 5 falhas iniciais para o preenchimento da cache. Uma vez que todas as páginas estão carregadas, as referências de volta (\(5, 4, 3, 2, 1\)) resultam todas em acertos (\textit{hits}). O total de falhas é 5.\end{ProblemaAutor}
\end{document}

View File

@@ -0,0 +1,51 @@
\documentclass{maratona}
\begin{document}
\begin{ProblemaAutor}{}{Inclusão de Subintervalos}{1}{256}{}
Seja \( S \) um conjunto de \( n \) intervalos sobre a reta real \( ([l_0, r_0], [l_1, r_1], \ldots, [l_{n-1}, r_{n-1}]) \), de modo que, para todo intervalo \( [l_i, r_i] \), temos \( l_i \le r_i \).
Dizemos formalmente que um intervalo \( a = [l, r] \) \textbf{cobre} outro intervalo \( b = [l', r'] \) quando \( l \le l' \) e \( r \ge r' \).
O objetivo é encontrar o menor subconjunto \( S' \subseteq S \) tal que todo intervalo pertencente ao conjunto original \( S \) seja coberto por, pelo menos, um intervalo pertencente a \( S' \). Em outras palavras, você deve selecionar a quantidade mínima de intervalos de \( S \) que, juntos, sejam capazes de conter todos os demais intervalos dados.
\Entrada
A entrada consiste em duas linhas.
A primeira linha contém um inteiro \( n \) (\( 1 \le n \le 10^5 \)), representando a quantidade de intervalos no conjunto \( S \).
As próximas \( n \) linhas contêm, cada uma, dois inteiros \( l_i \) e \( r_i \) (\( 1 \le l_i \le r_i \le 10^5 \)), representando o início e o fim de cada intervalo.
\Saida
Para cada caso de teste, imprima um único inteiro representando o tamanho do menor conjunto \( S' \subseteq S \) que cobre todos os intervalos de \( S \).
\ExemploEntrada
\begin{Exemplo}
\texttt{3} & \texttt{3}\\
\texttt{1~2} & \\
\texttt{3~4} & \\
\texttt{5~6} & \\
\rowcolor{gray!20}\texttt{4} & \texttt{1}\\
\rowcolor{gray!20}\texttt{2~4} & \\
\rowcolor{gray!20}\texttt{3~7} & \\
\rowcolor{gray!20}\texttt{1~8} & \\
\rowcolor{gray!20}\texttt{4~8} & \\
\end{Exemplo}
\Notas
No primeiro caso de exemplo, temos os intervalos \(\{ [1, 2], [3, 4], [5, 6] \}\). Como nenhum intervalo está contido em outro (eles são disjuntos), todos os três são necessários para garantir a cobertura de si mesmos. Portanto, a saída é 3.
No segundo caso, temos os intervalos \(\{ [2, 4], [3, 7], [1, 8], [4, 8] \}\). Note que:
\begin{itemize}
\item O intervalo \([1, 8]\) cobre o intervalo \([2, 4]\) pois \( 1 \le 2 \) e \( 8 \ge 4 \).
\item O intervalo \([1, 8]\) cobre o intervalo \([3, 7]\) pois \( 1 \le 3 \) e \( 8 \ge 7 \).
\item O intervalo \([1, 8]\) cobre o intervalo \([4, 8]\) pois \( 1 \le 4 \) e \( 8 \ge 8 \).
\end{itemize}
Como o intervalo \([1, 8]\) cobre todos os outros e a si mesmo, o menor conjunto \( S' \) possui apenas 1 elemento.\end{ProblemaAutor}
\end{document}

View File

@@ -0,0 +1,30 @@
\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsthm,amssymb}
\usepackage{fullpage}
\usepackage{url}
\pagenumbering{gobble}
\usepackage{hyperref}
\usepackage{graphicx}
\input{statement/preamble.tex}
\title{ Tutorial: Unconventional pairs}
\author{Codeforces 1054 (Div. 3)}
\date{}
\begin{document}
\maketitle
\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}\end{document}

View File

@@ -0,0 +1,47 @@
\documentclass{maratona}
\begin{document}
\begin{ProblemaAutor}{}{Unconventional pairs}{1}{256}{Codeforces 1054 (Div. 3)}
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.
\Entrada
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 \).
\Saida
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.
\ExemploEntrada
\begin{Exemplo}
\texttt{2} & \texttt{1}\\
\texttt{2} & \texttt{0}\\
\texttt{1~2} & \\
\texttt{4} & \\
\texttt{5~5~5~5} & \\
\end{Exemplo}
\Notas
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.\end{ProblemaAutor}
\end{document}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,437 +1,437 @@
899170
692272
814110
1769740
1097459
1250388
179810
268244
152318
75369
1965923
806946
1201548
2117470
633912
1319568
145846
1090890
767212
1560950
529049
805214
1300846
990339
2382034
831515
1436619
528001
43096
517202
577327
670029
741866
49096
565073
519221
807952
1258007
407320
469797
1953085
858652
426902
3402609
42758
1590867
62796
1144862
243908
2829
237308
400985
9441
1936764
368376
282575
1279837
105252
456701
2137241
919648
275139
971225
54849
576113
1405057
220312
237783
37676
79305
1202859
727655
1088077
825157
30177
709292
599192
137137
876506
1415284
1272443
166684
545709
854842
132279
194189
128547
14396
90068
1378410
599407
2390634
240611
1945160
1426717
1150972
829624
1335414
417
322894
173304
161608
872989
1006511
912955
1015528
424289
647714
507541
368919
132710
248760
1521985
2542227
501754
484507
1061261
31065
168268
78781
1267436
741347
532088
3364
783246
229431
502674
2031615
524485
3233881
13967
1558283
659449
129361
1534910
210924
71191
334785
1265145
656812
381389
2918927
610772
91225
930060
330886
270400
224242
120936
1216767
2616085
771511
104932
336637
288135
2780124
1140390
1537905
9256
213918
665542
605737
292625
41133
374834
292403
194524
1536327
906466
2889650
969550
720583
693561
81217
40499
390379
504538
340134
1215155
233071
164162
791806
429733
1045712
205547
924542
456147
360952
254596
568919
794035
525951
673355
286190
490829
49090
2304042
233312
75827
1050582
648100
669539
3293687
1077794
1513818
979538
218662
928659
2589315
1362773
401159
2056859
1150622
914494
1331044
3560137
366754
503668
640053
568533
138012
37106
84469
802347
98766
330832
620190
2164
141459
1151209
1335063
525453
781390
873723
229714
136092
284461
415860
102499
2318486
369723
2501920
1310536
262950
37170
1376619
793579
2747
2632067
205352
768498
485149
1243101
1210031
1376277
793248
4249
401048
1613331
1620653
75759
1914217
712631
868660
2760875
169193
648061
551823
675436
2172323
177441
447125
1421667
1271199
617806
167464
2869444
1588122
640582
3312655
379868
1898768
1913624
697655
200026
1642850
150684
2599157
949865
859048
18040
930560
1027703
242094
60785
854218
1327705
308003
28911
172385
121294
476807
182544
476849
525548
175844
562934
336129
1603153
82980
217332
1840872
1573515
405880
768350
448310
341840
1090884
365583
919838
587043
1845898
740740
186740
75583
273825
333018
108540
179938
2928712
238679
216775
1160795
337664
836575
148621
1145045
1419633
716545
2863732
2414839
489828
377866
3213054
1303662
368950
370114
1309279
181259
2187085
450424
2340638
418249
483070
180297
91728
291576
2077598
265108
1341074
2305204
888302
219970
93266
327947
1344423
174553
244804
1160455
650669
194617
486787
137069
1259476
1244526
190123
957505
882642
2576344
1612951
376810
157755
1503039
726092
1441357
158543
132447
1280851
478973
2258944
1548047
1527719
1891422
1331284
800492
428107
1095141
58641
1038195
1014071
537666
48860
1315834
49490
949112
760305
22791
352780
23790
1392138
933236
1347957
152155
770344
482026
840444
564373
1278635
610324
536196
1044271
728191
1293274
1465469
532966
1936917
89755
1397291
1377835
1589851
792909
360742
283630
289192
982649
347573
2314320
107285744
132428743
141250161
141987850
122854193
107129986
169856433
135579595
139957041
121692753
140409008
226171939
278664476
95776703
238863854
158438575
259575154
163430514
129097027
163271771
152248982
188245000
113604479
172405974
131708634
109959786
105604491
88697227
207843990
124761179
152208464
125093467
96383496
161022206
120354228
100598499
103859393
225570652
155604240
166455566
118248819
137965863
123839574
128990733
91213488
154620254
121592695
128810825
147661569
131922090
175314202
167633743
129496799
152969399
93872526
107121279
164539621
160893854
214725666
135155172
86303031
118686575
150972009
139813557
116950930
110620288
142526048
280638373
118032538
109654543
193172991
135956420
133017245
150181352
207414958
162628967
108998487
111902385
131199961
166648874
102773402
144975879
104923140
156897029
93005180
201551253
112878011
76772454
153264660
130814483
173728989
169204971
144952471
155604554
151797918
205273054
152523065
180469309
153413669
152155808
101712246
268379226
234603340
141900968
156449008
152730078
177691748
100684458
143104122
182006281
157328361
114596496
164582999
143066932
208015473
308497387
151426778
159968372
78930512
100286013
174085445
71898255
184175704
121395919
118433019
250692900
180757484
110751961
122149143
125447775
91811485
181844209
168664254
134649660
314723393
86553235
128854008
160295526
96264319
100040688
181145741
114251574
102379984
157019596
141230471
101236755
162482146
148536928
178687434
181512265
256648338
162596116
156419062
147519470
233581808
122593098
119302505
91320785
185759454
173617083
245658280
96080661
132322681
94193103
129510780
236045181
129602414
176494242
148333581
104933141
153318056
310825838
191648568
79756020
151975038
112447639
95474612
149945425
132504851
139997246
135210581
143712136
150650463
118235592
172428446
139427997
221100821
156370547
148109570
101626552
153992503
149737828
147014032
151737099
206069388
119399710
143985134
148658337
111189915
136367700
157508914
158373234
138818504
155621512
108247392
126056772
130472290
119059852
134519476
114272450
125047199
122316763
91628497
156122140
214968005
183154813
165940835
159316839
231429156
156927241
214029919
150470700
118979380
95547396
199571640
195148911
175750016
203670393
109420363
185213744
124091914
210494753
100820065
94563148
154401928
192645928
111068730
154956209
138371517
126620176
146264062
171527888
104564071
274617505
104901258
205435001
106260991
147536861
142429935
161198025
230544381
222574562
92590397
195467747
176776778
174068774
206177623
104610377
140705024
168176151
204093185
113774351
148337514
177339937
148201180
211547397
112615380
110585961
137653737
110835366
140712247
155211896
148547618
215538380
101036056
93255305
171030776
95278446
107811783
254495082
265199509
83222069
277626672
163516005
131507493
93963802
210759411
118817303
119262648
151868754
156768815
136207688
80055445
179614642
129279944
219648074
168647536
124990523
136017339
210856791
109549722
127843360
95239699
224331071
143193437
143041141
138844652
181892331
201986070
329077200
182818740
127490309
122113086
179218630
206974428
150887664
144195304
208359328
144847249
103731257
84076982
137503484
107752807
86765138
145263067
207844066
77952349
146227354
93926217
118652561
140230765
117815538
150620917
229725355
132916429
128894752
96796435
304491219
116505399
103694653
148348354
136535152
191087416
181039511
210346528
132116677
72215327
158422731
135985222
145973071
284723366
141972710
174405221
159249937
136375567
177251029
116250334
187287250
175290795
99587320
171900322
92849761
194989363
185770346
224548969
115383988
122910413
166382814
89584232
203747758
151293406
159153288
119116527
147548484
143254621
130683270
150495473
91700274
169236777
76747362
182518439
118653015
106837712
117180359
109125633
121941417
187762134
111504120
237506712
151810591
160165383
196140194
185584158
86003623
131284282
115783461
155851028
115163812
180233892
278721983
197281339
105134305
70071728
236741688
214172916
120706780
209944286
131727930
198798154
100700231
120031840
163140889
101724825
239343385
140863542
104323005
190889288
227173095
116892545
160812361
79941709
140760343
169894024
92284724
196732601
110465858
166798914
140780518
263812856
154690996
205830307
155252636
88520512
164872137
89737545
221934596
107983190

File diff suppressed because it is too large Load Diff

View File

@@ -1,114 +1,114 @@
552
5874
35571
8028
24301
31993
6162
44066
2118
23717
1877
8480
94939
8813
22303
45605
19879
67143
217280
57592
9879
8051
34884
4526
14314
73392
16671
39086
19721
75543
8097
84155
55350
34019
13287
4555
17746
7891
20666
570
9211
18050
48179
22342
38580
43780
45748
5321
57987
31210
47587
43437
755
17658
4814
2892
5264
29911
15439
28395
5048
28623
57432
1867
27843
14232
82255
76153
10508
4177
25266
22794
31104
21100
14866
21347
77443
2474
13842
81516
3995
14319
72288
62918
31007
5948
7638
12807
24570
29182
14948
78047
28726
61099
52671
7087
87619
11634
32552
10122
43739
25053
4159
3959
3748
68384
39905
125608
3945
64382
58930
58230
14227
4290
34024439
60919746
41158134
46289094
51083298
51961396
32365149
33418859
35608517
53710793
41114484
46964543
42543589
56234031
47993734
42907709
51426779
33876005
53136717
32393026
48949973
40596786
62847970
32369028
46036203
87581785
36534033
40992962
36605854
48573990
44312959
49353137
49525310
42952259
40463127
44260416
57646109
52065133
55176753
48902748
40509422
57694481
69062910
34325452
30900459
75320163
49113812
60155925
46291670
41702718
53363405
43276537
49076335
41738048
43241489
42088937
56938825
37434893
54538401
32665867
44947239
37588909
36428342
54030371
39683194
48545693
52349137
36071881
54600407
51558825
50835992
32259747
43438530
45745999
37797301
39968237
33540236
40331141
30916563
42662886
60569896
41518770
65004356
54748903
47928355
47647799
28545523
51912080
46502990
50034467
38723982
46725020
46520895
70664121
60434399
68457951
40942234
40844059
46594912
48328776
45854210
44793067
49891269
44977121
40376078
43396790
50153726
84302961
45220389
36615620
41622093
45860648
51595558
41049095

View File

@@ -1,398 +1,398 @@
5177
96409
36140
32801
101533
189219
277121
42975
185457
41319
119459
51437
11825
161945
59778
190205
82005
180063
41026
117396
43549
15130
12341
159949
29723
166727
57491
8039
74995
427230
280052
87467
24990
5838
30514
43702
72685
14930
23462
158889
302015
301313
34450
105416
330040
338730
23749
49096
246496
117803
14861
195926
45971
24879
8174
183604
3907
369812
14445
71298
80896
15405
9213
12512
36701
45145
41645
318065
323842
411763
19836
80068
383862
212109
434052
102877
84684
17894
89778
80153
105151
18673
182768
92536
46405
153429
202731
3951
5356
82689
33135
83483
42310
35023
59141
92497
5458
64386
152451
132453
116952
136993
92919
167439
59816
7019
138187
67710
144485
283381
128823
46901
23383
30463
58667
190563
62931
45342
1565
56883
21471
214926
67835
507673
227017
23774
88734
165455
148068
4637
271123
140205
18168
219758
87770
26513
23231
123293
66706
220688
217309
23267
7751
129700
35729
144049
12880
189992
5675
175613
153515
262096
184561
99761
40560
32839
83998
147964
70372
93211
119641
135038
17400
12075
84305
25278
94903
9963
60636
1914
24627
108667
105120
165172
7040
366153
212748
87307
159074
159284
10464
18720
8801
55220
24755
42756
41044
121146
72355
26472
67988
177787
323110
4269
35343
302554
197102
35490
27542
9032
34101
149976
56430
96145
165879
233776
65597
13656
87518
103167
179511
60375
42754
148306
111781
107092
29797
86456
8467
23539
50136
13170
30970
31534
87096
31440
28900
75237
259553
54606
75054
141860
5021
86546
59449
11634
238764
47986
259142
2484
12349
87945
34423
210946
38802
7803
57326
78499
18688
62191
60126
22646
412423
9574
34223
110764
4684
127211
23420
4648
33658
3021
67524
111310
175296
291207
301891
171808
7164
132693
24391
151439
53682
28520
3882
34579
98091
316799
132859
79747
108358
27909
58263
110348
11069
6253
41581
68853
60414
50838
31632
97355
271943
46597
135703
30658
45977
14132
37671
582835
13629
45833
9669
154236
79662
64598
111986
71813
71717
7187
44643
127821
99453
17033
14110
217587
275748
13161
128892
134878
41495
195497
153705
40975
157361
156115
21856
38980
269385
173823
9947
83312
272930
8144
79025
137513
138782
107688
109556
129235
127244
34481
13656
2629
46303
4389
55366
27853
182184
47816
45498
48604
143854
96110
196364
309520
19537
31274
123076
152306
104030
2059
38179
17017
22830
50923
12163
53775
68370
21981
61899
26538
186543
81620
46612
34781
228437
76763
74386
133342
43230
8273
49045
132376
128294
105739
80757
168033
160625
13144
157674
5140
3617
104509
33800
19929
124210
203213
82675125
72386838
72500642
57947355
49063823
58507342
77192208
55467688
72134244
107967443
52561241
43448067
84028526
61604475
86466224
58519504
77919984
72584278
64462836
94326344
60985101
61275310
87778129
54239728
64167326
60458356
59968029
67425408
75381174
66178162
52729862
66024319
89587581
66632429
74083419
66073464
77432612
66754157
54528854
66635029
77559705
85645731
63993265
75737093
47899530
66657874
79771104
71223295
96917569
100738768
60157805
55697950
50870402
57726050
87510668
72167410
63526818
58317166
61791913
79003274
68840017
60287882
48863697
53322327
54412038
63040585
67195156
73969629
82519105
89144706
82717718
116928015
52989500
56226357
48291730
61399122
67212193
90417456
40613261
60335559
90703222
74311103
50110518
62952766
67675383
86742388
57586685
72803683
75566957
67601213
83039370
107255730
85704232
53325767
93988073
59451745
79811294
102228184
60529482
84342930
56980189
56049477
77247909
81961231
61251804
100593021
56020120
62966731
44861077
88901519
45290712
68605567
50022931
78529794
62408187
57772526
55010350
78149900
59025541
96225894
55479775
54919538
60953398
61993045
82033683
49610870
102676281
55744010
55526993
57554220
79270510
69074794
59449439
89147750
78886896
74602290
63355138
89342893
59993586
76808015
57701242
55828591
64130698
47314678
51245002
61022565
60318669
68227210
40190987
74998905
96008016
73802875
67540044
63548130
108303769
65047333
75430930
91126345
120503979
74244161
130636695
55449891
57618072
49914091
65764443
56231713
49103376
59564988
73401528
53786230
91309962
80894922
76045522
64373641
87075904
82446732
50615686
51258778
51958110
55085113
112444902
66387452
62201106
88751444
85881803
49139861
62121791
61076168
61043652
98156592
53052454
61466308
68955159
63531949
51098016
45211394
42568613
46913221
57957686
70594031
81367457
64151247
70874095
72043823
98607352
76124695
76917871
110269466
56860932
76771022
63605025
50945828
73965557
49153103
86314972
56749624
45350615
61679801
53225880
79691679
61472916
68992887
58390207
71774104
92286044
75331710
52246399
46317424
83159587
51624063
49797565
96931664
55133717
64758567
64137842
84763826
54312719
46982821
46083223
76640483
54119887
45475921
52600539
56874576
62319932
79934905
60296440
57029634
38419093
59452474
52901639
55020248
70086462
70249271
52599024
61298301
74142704
88968676
49778080
38162997
57957373
88839689
61953373
66343857
64505163
61295296
55430116
61144366
86227664
77969597
66290124
83458841
49277946
45806495
62763041
80737323
85037987
58745331
66696329
73238060
77256269
53128863
65186350
58493916
52777191
91738662
57821101
93625023
64166053
99739920
65141278
40911590
50063569
61242901
86433254
73523306
81621178
115570072
62251570
76135066
70221040
43168549
70114564
68605576
71852440
54445379
71741715
56335156
65105895
61831059
72320412
71569672
56809393
89955060
60308953
50856831
69793007
69101856
60655868
93536461
76842012
56909061
58316951
59512049
67932880
69061250
106695558
57318116
59014701
46017338
123866534
69270577
67202630
44799348
48184087
47104629
88607275
77960021
83628182
65889679
128953321
66678024
56548569
141052920
59266939
78302743
86701841
66618519
74474288
51696215
64003224
93424749
51543366
51842821
65706435
71960484
45254740
52430941
48487303
47050297
62635065
47828666
66690345
59230509
91436927
69707504
53650249
75841391
93717910
65127296
47768932
74585987
67066578
58073752
61546012
56561421
69662807
88995769
101392159
78650487
54269714
60823727
49353399
79219605
71362354
67319169
80375560
63529054
62514938
66254484
84367611
66283114
100641157
60598321
119839319
58113108
73124765
49678955

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,230 +1,230 @@
8441
10798
5185
4259
2690
1254
4175
654
926
2872
9773
846
2239
240
6097
17000
7799
4042
6862
6948
18667
12756
4697
16833
4441
30059
4083
62
2821
3855
5407
31
4544
4609
1898
13288
3239
16542
1760
8356
13382
150
17632
27436
2760
7617
152
1890
11220
2472
3738
2761
6407
426
6072
14032
26759
3173
858
1636
13616
1835
14928
14739
7280
6513
15335
870
5564
11400
1673
2618
6362
876
4885
3198
10308
5676
7454
5413
2535
3944
9366
1282
16456
6848
24510
10441
34900
5338
2943
5205
5207
6608
1437
5931
2924
3843
11005
13517
1220
3603
34383
8704
21681
6178
5418
11321
2864
3144
1135
21172
268
282
6967
9051
15071
334
3721
4389
13105
1900
4998
18783
11296
2090
837
702
3650
22415
568
8060
860
664
3774
29451
1126
634
2821
11422
12726
5130
7781
3691
5531
17983
4616
2409
436
6107
6769
3299
491
25161
10043
11873
19245
2940
13931
53
18474
8532
7028
2253
3746
2291
5905
3022
12925
5161
0
545
1177
2121
4341
13359
4147
681
2097
14165
8229
12587
5800
26275
1995
3549
991
16834
458
1432
573
1837
3765
4690
5172
1820
6386
2048
1912
3887
1876
6282
16192
22214
1262
4202
2892
5079
7811
2667
7056
7186
1049
1467
735
39584
693
2661
3639
70
7299
7712
3569
2216
7608
10473
21297
2243
18278
7664
21306376
21791844
19091611
27737726
20196173
23020240
23228236
22088351
25817118
20084903
26084070
22847507
18680084
17183154
21931134
23838950
19938918
26957714
21687250
20842632
22853138
19695868
17905653
21556157
31231447
15121798
18833087
18807858
22118118
24852520
20882684
19707720
18804313
18547825
24365618
17443628
23152461
21304757
16775167
28266900
20298429
31990199
23231963
22356183
30918990
26633410
20440711
20509556
25175452
33124197
17490285
18853666
21454044
21950826
19052167
27303365
21110133
31328056
17144524
25039703
22642811
26375132
25297336
19460054
19287371
21683942
26925972
22678206
20747152
16171554
17445161
18531364
23981275
22299467
26732490
26493510
24689104
21931005
24150000
24824178
18493814
19641451
20893333
16004192
26865748
27971560
36376458
20527899
24253545
22719109
25291920
26288779
27151573
23582628
21066851
22554014
25365973
19849775
24958695
20318062
27659896
15309695
30467568
19192724
24027619
28424752
17283511
22539422
18513963
21990136
22291776
17729910
33610891
15128405
21424760
17127783
25196254
22342760
32088750
26155954
21488738
23969159
19792561
26379947
15593819
28340762
25262140
23009303
19740448
23983036
31124743
19687950
25052486
23765748
26857721
20292691
13415327
20098658
22700164
22012141
36282811
22330195
23588891
36094302
19735949
16316489
18700067
19519860
26305932
32222721
19545580
25320869
27758797
21443667
27362955
24517867
17806003
28006418
27126951
20799892
19731413
21825309
24851507
24830337
21087767
25899688
14719973
21701194
17346117
24095930
19856281
22234727
27157746
27325283
28518774
16033429
21569410
18661599
29179440
23505515
29714041
22406882
26651982
17077346
22485952
21031040
22658895
25862218
19883185
28842056
18165872
21928511
18201056
21833780
28191112
23249078
20099448
25708490
25853202
24502194
23584955
20120099
19352046
29627452
24005459
20078716
26263108
24092008
22044610
19454782
32576499
15813612
18271516
23237217
24296900
25591761
21507155
17001277
24255647
17256227
19733188
15683943
21587242
26337930
19544241
28559846
19397394
26224087
22941657
25605276

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -44,7 +44,7 @@
"solutions": {
"main-ac": "ac.cpp",
"alternative-ac": [],
"wrong-answer": [],
"wrong-answer": ["wa.cpp"],
"time-limit": [],
"time-limit-or-ac": [],
"time-limit-or-memory-limit": [],

View File

@@ -2,19 +2,21 @@
using namespace std;
int main(){
int t; cin >> t;
int main() {
int t;
cin >> t;
while (t--) {
int n; cin >> n;
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) cin >> nums[i];
for (int i = 0; i < n; i++)
cin >> nums[i];
sort(nums.begin(), nums.end());
int minDiff = INT_MAX;
for (int i = 1; i < n; i++) {
minDiff = min(minDiff, nums[i] - nums[i - 1]);
int minDiff = numeric_limits<int>::min();
for (int i = 1; i < n; i+=2) {
minDiff = max(minDiff, nums[i] - nums[i - 1]);
}
cout << minDiff << endl;

View File

@@ -0,0 +1,23 @@
#include <bits/stdc++.h>
using namespace std;
int main(){
int t; cin >> t;
while (t--) {
int n; cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) cin >> nums[i];
sort(nums.begin(), nums.end());
int minDiff = INT_MAX;
for (int i = 1; i < n; i++) {
minDiff = min(minDiff, nums[i] - nums[i - 1]);
}
cout << minDiff << endl;
}
return 0;
}

View File

@@ -5,6 +5,8 @@
\usepackage{url}
\pagenumbering{gobble}
\usepackage{hyperref}
\usepackage{graphicx}
\input{statement/preamble.tex}
\title{ Tutorial: Unconventional pairs}
\author{Codeforces 1054 (Div. 3)}

View File

@@ -28,6 +28,7 @@ Para cada caso de teste:
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.
\ExemploEntrada
\begin{Exemplo}
\texttt{2} & \texttt{1}\\
\texttt{2} & \texttt{0}\\

View File

@@ -1 +0,0 @@
20

View File

@@ -1 +0,0 @@
4

View File

@@ -1 +0,0 @@
29

View File

@@ -1 +0,0 @@
32

View File

@@ -1 +0,0 @@
25

View File

@@ -1 +0,0 @@
12

View File

@@ -1 +0,0 @@
100

View File

@@ -1 +0,0 @@
0

View File

@@ -1 +0,0 @@
41

View File

@@ -1 +0,0 @@
2

View File

@@ -1 +0,0 @@
26

View File

@@ -1 +0,0 @@
5

View File

@@ -1 +0,0 @@
29

View File

@@ -1 +0,0 @@
17

View File

@@ -1 +0,0 @@
22

View File

@@ -1 +0,0 @@
25

View File

@@ -1 +0,0 @@
27

View File

@@ -1 +0,0 @@
5

View File

@@ -1 +0,0 @@
15

View File

@@ -1 +0,0 @@
32

View File

@@ -1 +0,0 @@
34

View File

@@ -1 +0,0 @@
25

View File

@@ -1 +0,0 @@
0

View File

@@ -1 +0,0 @@
37

View File

@@ -1 +0,0 @@
19

Some files were not shown because too many files have changed in this diff Show More