From c58f6e4aeb8ca8683317b3efb135f7dbd1083f43 Mon Sep 17 00:00:00 2001 From: arthur Date: Mon, 18 May 2026 16:34:33 -0300 Subject: [PATCH] fix: updated problem output since the numbers of combinations could be very high. --- decode-ways/decode-ways-tutorial.pdf | Bin 96427 -> 96427 bytes decode-ways/decode-ways.pdf | Bin 67045 -> 77156 bytes decode-ways/decode-ways.tex | 2 ++ decode-ways/output/109 | 2 +- decode-ways/output/6 | 2 +- decode-ways/src/TLE.cpp | 10 +++++++--- decode-ways/src/ac.cpp | 6 +++++- decode-ways/src/alternative-ac2.py | 2 +- decode-ways/src/alternative_ac.cpp | 4 ++++ decode-ways/statement/output.tex | 2 ++ 10 files changed, 23 insertions(+), 7 deletions(-) diff --git a/decode-ways/decode-ways-tutorial.pdf b/decode-ways/decode-ways-tutorial.pdf index ac776e41aca94233133854d3a59c1ca970557d05..3f7e73fbb11d6ff9e486b649939696f18f06ae7d 100644 GIT binary patch delta 134 zcmZ4ek#+S))`l&N@3OQk49$!UO^tO8jMWVc)HS*Eee+XX5=&AQG+eBV42;YSObww* zwo7C)D)2a)JGmNLnwpqeI69g+n;Mx~TDUlwnmRj~m^d1kx*56IDcBHFvc0;T(SQ*E DlUE_- delta 134 zcmZ4ek#+S))`l&N@3OSa3=Iv;OiXkQjMWVc)HS*Eee+XX5=&AQG+eBV42;YSObww* zwo7C)D)2ZPx|x_5SelzUI~!U$yE?lWIlCAc7@8WnIGeawSU8&4DcBHFvc0;T(SQ*E DkI5n7 diff --git a/decode-ways/decode-ways.pdf b/decode-ways/decode-ways.pdf index d7e5c8278f3d05ae1e7e90f181432c0b03a4f934..17c437b80ac87f8ead20dd24431783454400646c 100644 GIT binary patch delta 25698 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 XNf%`Ukz(@mbMy0|)6vPQ%c1{2Og=wv diff --git a/decode-ways/decode-ways.tex b/decode-ways/decode-ways.tex index 8f5f8ba..c4e1001 100644 --- a/decode-ways/decode-ways.tex +++ b/decode-ways/decode-ways.tex @@ -18,6 +18,8 @@ A segunda linha contém uma sequência de digitos de \( s \) de comprimento \( n A saída deve conter um único inteiro, representando o número total de maneiras possíveis de decodificar a sequência numérica \( s \) de acordo com o mapeamento \( 1 \rightarrow A, 2 \rightarrow B, \ldots, 26 \rightarrow Z \). +Como este número pode ser extremamente grande, sua resposta deve ser calculada e impressa \textbf{módulo \(10^9 + 7\)}. + \ExemploEntrada \begin{Exemplo} \texttt{2} & \texttt{2}\\ diff --git a/decode-ways/output/109 b/decode-ways/output/109 index 689d05f..2317127 100644 --- a/decode-ways/output/109 +++ b/decode-ways/output/109 @@ -1 +1 @@ -1298777728820984005 +782204094 diff --git a/decode-ways/output/6 b/decode-ways/output/6 index de22d67..82fafb3 100644 --- a/decode-ways/output/6 +++ b/decode-ways/output/6 @@ -1 +1 @@ -1836311903 +836311896 diff --git a/decode-ways/src/TLE.cpp b/decode-ways/src/TLE.cpp index e7ab352..245a522 100644 --- a/decode-ways/src/TLE.cpp +++ b/decode-ways/src/TLE.cpp @@ -3,7 +3,9 @@ typedef long long ll; using namespace std; -int ways(string &s, int n, int idx = 0) +const int MOD = 1e9 + 7; + +ll ways(string &s, int n, int idx = 0) { if (idx > n) return 1; @@ -14,11 +16,13 @@ int ways(string &s, int n, int idx = 0) if (idx + 1 < n) { int num = stoi(s.substr(idx, 2)); - if (num >= 10 && num <= 26) + if (num >= 10 && num <= 26){ count += ways(s, n, idx + 2); + count %= MOD; + } } - return count; + return count % MOD; } vector used; diff --git a/decode-ways/src/ac.cpp b/decode-ways/src/ac.cpp index 40cac3c..8bd0000 100644 --- a/decode-ways/src/ac.cpp +++ b/decode-ways/src/ac.cpp @@ -3,6 +3,8 @@ typedef long long ll; using namespace std; +const int MOD = 1e9 + 7; + ll numDecodings(string s) { if (s[0] == '0') @@ -36,15 +38,17 @@ ll numDecodings(string s) if (current != '0') { dp[i][0] = dp[i - 1][0] + dp[i - 1][1]; + dp[i][0] %= MOD; } int code = stoi(aux); if (10 <= code && code <= 26) { dp[i][1] = dp[i - 2][0] + dp[i - 2][1]; + dp[i][1] %= MOD; } } - return dp[N][0] + dp[N][1]; + return (dp[N][0] + dp[N][1]) % MOD; } int main() diff --git a/decode-ways/src/alternative-ac2.py b/decode-ways/src/alternative-ac2.py index 58cd5e9..1a432c7 100644 --- a/decode-ways/src/alternative-ac2.py +++ b/decode-ways/src/alternative-ac2.py @@ -13,4 +13,4 @@ for i in range(1, n + 1): if 10 <= two_digit <= 26: dp[i] += dp[i - 2] -print(dp[n]) \ No newline at end of file +print(dp[n] % 1000000007) \ No newline at end of file diff --git a/decode-ways/src/alternative_ac.cpp b/decode-ways/src/alternative_ac.cpp index ed6c711..2fe25c5 100644 --- a/decode-ways/src/alternative_ac.cpp +++ b/decode-ways/src/alternative_ac.cpp @@ -3,6 +3,8 @@ typedef long long ll; using namespace std; +const int MOD = 1e9 + 7; + ll numDecodings(string s) { if (s[0] == '0') @@ -20,12 +22,14 @@ ll numDecodings(string s) if (current != '0') { next = dp2; + next %= MOD; } int code = stoi(aux); if (10 <= code && code <= 26) { next += dp1; + next %= MOD; } swap(dp1, dp2); swap(dp2, next); diff --git a/decode-ways/statement/output.tex b/decode-ways/statement/output.tex index 5bbc861..be7ac45 100644 --- a/decode-ways/statement/output.tex +++ b/decode-ways/statement/output.tex @@ -1 +1,3 @@ A saída deve conter um único inteiro, representando o número total de maneiras possíveis de decodificar a sequência numérica \( s \) de acordo com o mapeamento \( 1 \rightarrow A, 2 \rightarrow B, \ldots, 26 \rightarrow Z \). + +Como este número pode ser extremamente grande, sua resposta deve ser calculada e impressa \textbf{módulo \(10^9 + 7\)}. \ No newline at end of file