diff --git a/analise-de-dados/analise-de-dados-tutorial.pdf b/analise-de-dados/analise-de-dados-tutorial.pdf index 12b8489..bc608a0 100644 Binary files a/analise-de-dados/analise-de-dados-tutorial.pdf and b/analise-de-dados/analise-de-dados-tutorial.pdf differ diff --git a/analise-de-dados/analise-de-dados-tutorial.tex b/analise-de-dados/analise-de-dados-tutorial.tex index cb3c296..a443bff 100644 --- a/analise-de-dados/analise-de-dados-tutorial.tex +++ b/analise-de-dados/analise-de-dados-tutorial.tex @@ -5,6 +5,8 @@ \usepackage{url} \pagenumbering{gobble} \usepackage{hyperref} +\usepackage{graphicx} +\input{statement/preamble.tex} \title{ Tutorial: Análise de Dados} \author{Leetcode 1223} diff --git a/analise-de-dados/analise-de-dados.pdf b/analise-de-dados/analise-de-dados.pdf index e8f2da9..2733839 100644 Binary files a/analise-de-dados/analise-de-dados.pdf and b/analise-de-dados/analise-de-dados.pdf differ diff --git a/analise-de-dados/analise-de-dados.tex b/analise-de-dados/analise-de-dados.tex index 244c3d0..a0c950a 100644 --- a/analise-de-dados/analise-de-dados.tex +++ b/analise-de-dados/analise-de-dados.tex @@ -34,6 +34,7 @@ Em seguida, são dados seis inteiros \(d_1, d_2, d_3, d_4, d_5, d_6\), cada um r A saída consiste em um único inteiro representando o número total de sequências válidas de lançamentos, considerando o resultado módulo \(10^9 + 7\). \ExemploEntrada + \begin{Exemplo} \texttt{2} & \texttt{34}\\ \texttt{1~1~2~2~2~3} & \\ diff --git a/analise-de-dados/problem.json b/analise-de-dados/problem.json index e2b95ea..3f325c1 100644 --- a/analise-de-dados/problem.json +++ b/analise-de-dados/problem.json @@ -43,7 +43,7 @@ }, "solutions": { "main-ac": "ac.cpp", - "alternative-ac": [], + "alternative-ac": ["test.py"], "wrong-answer": [], "time-limit": [], "time-limit-or-ac": [], @@ -61,4 +61,4 @@ "maximum_memory_mb": 512, "maximum_output_size_kb": 24096 } -} \ No newline at end of file +} diff --git a/delete-and-earn/delete-and-earn-tutorial.pdf b/delete-and-earn/delete-and-earn-tutorial.pdf index 1db218b..4de2692 100644 Binary files a/delete-and-earn/delete-and-earn-tutorial.pdf and b/delete-and-earn/delete-and-earn-tutorial.pdf differ diff --git a/delete-and-earn/delete-and-earn-tutorial.tex b/delete-and-earn/delete-and-earn-tutorial.tex index bd0c1d2..a7b6187 100644 --- a/delete-and-earn/delete-and-earn-tutorial.tex +++ b/delete-and-earn/delete-and-earn-tutorial.tex @@ -5,6 +5,8 @@ \usepackage{url} \pagenumbering{gobble} \usepackage{hyperref} +\usepackage{graphicx} +\input{statement/preamble.tex} \title{ Tutorial: Deletar e Ganhar} \author{Leetcode 740} diff --git a/delete-and-earn/delete-and-earn.pdf b/delete-and-earn/delete-and-earn.pdf index a98c04f..7a51bb7 100644 Binary files a/delete-and-earn/delete-and-earn.pdf and b/delete-and-earn/delete-and-earn.pdf differ diff --git a/delete-and-earn/delete-and-earn.tex b/delete-and-earn/delete-and-earn.tex index 1cf8a99..224dcd7 100644 --- a/delete-and-earn/delete-and-earn.tex +++ b/delete-and-earn/delete-and-earn.tex @@ -19,6 +19,7 @@ A segunda linha contém \( n \) inteiros \( a_1, a_2, \ldots, a_n \) (\( 1 \leq A saída deve conter um único inteiro, representando a pontuação máxima possível obtida após realizar as operações descritas. \ExemploEntrada + \begin{Exemplo} \texttt{3} & \texttt{8}\\ \texttt{3~4~5} & \\ diff --git a/delete-and-earn/problem.json b/delete-and-earn/problem.json index 2c7b300..7ea3e2f 100644 --- a/delete-and-earn/problem.json +++ b/delete-and-earn/problem.json @@ -36,14 +36,14 @@ "run_specific_solution": "", "generate_io_only": false, "generate_pdf_only": false, - "cpu_count": 1, + "cpu_count": 0, "build_pdf": true, "pdf_format": "ds", "io_samples": 3 }, "solutions": { "main-ac": "ac.cpp", - "alternative-ac": [], + "alternative-ac": ["saad.py"], "wrong-answer": ["WA.cpp"], "time-limit": ["TLE.cpp"], "time-limit-or-ac": [], diff --git a/delete-and-earn/src/saad.py b/delete-and-earn/src/saad.py new file mode 100644 index 0000000..dc7accd --- /dev/null +++ b/delete-and-earn/src/saad.py @@ -0,0 +1,36 @@ + +class Solver: + + def __init__(self): + self.n_ = 0 + self.v_ = [] + self.freq_ = [] + + def read_input(self) -> None: + self.n_ = int(input()) + self.v_ = list(map(int, input().split())) + + def process_freq(self) -> None: + self.freq_ = [0] * (max(self.v_) + 1) + + for i in self.v_: + self.freq_[i] += 1 + + def solve(self): + self.process_freq() + dp = [0] * (max(self.v_)+1) + dp[1] = self.freq_[1] + for i in range(2, len(dp)): + dp[i] = max(dp[i-1], dp[i-2] + i * self.freq_[i]) + + print(dp[-1]) + + +def main(): + solver = Solver() + solver.read_input() + solver.solve() + + +if __name__ == "__main__": + main()