3336 - acadele: Difference between revisions
Pagină nouă: == Cerinţa == Candyman are acadele de trei feluri: cu căpşuni, cu vişine şi cu zmeură, oricâte acadele din fiecare fel. Cei '''n''' copii de la grupa pregătitoare şi-au ales fiecare câte o acadea astfel încât cel mult doi copii şi-au ales cu vişine. Dacă notăm cu '''m''' numărul de moduri în care puteau să-şi aleagă fiecare câte o acadea, să se afle restul împărţirii lui '''m''' la '''2020'''. == Date de intrare == Programul citește de la tastatură... |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 7: | Line 7: | ||
== Restricţii şi precizări == | == Restricţii şi precizări == | ||
* '''1 ⩽ n ⩽ 1018''' | * '''1 ⩽ n ⩽ 1018''' | ||
== Exemplul 1 == | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
2 | 2 | ||
; Iesire | ; Iesire | ||
Datele de intrare corespund restrictiilor impuse | |||
9 | 9 | ||
== Exemplu 2 == | == Exemplu 2 == | ||
; Intrare | ; Intrare | ||
Line 19: | Line 18: | ||
; Iesire | ; Iesire | ||
Datele de intrare nu corespund restrictiilor impuse | Datele de intrare nu corespund restrictiilor impuse | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
Line 47: | Line 45: | ||
main() | main() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicatie == | == Explicatie == | ||
Cei doi copii puteau să-şi aleagă acadelele astfel: (c,c), (z,z), (v,v), (c,v), (v,c), (c,z), (z,c), (v,z), (z,v). | Cei doi copii puteau să-şi aleagă acadelele astfel: (c,c), (z,z), (v,v), (c,v), (v,c), (c,z), (z,c), (v,z), (z,v). |
Latest revision as of 21:39, 2 January 2024
Cerinţa[edit | edit source]
Candyman are acadele de trei feluri: cu căpşuni, cu vişine şi cu zmeură, oricâte acadele din fiecare fel. Cei n copii de la grupa pregătitoare şi-au ales fiecare câte o acadea astfel încât cel mult doi copii şi-au ales cu vişine. Dacă notăm cu m numărul de moduri în care puteau să-şi aleagă fiecare câte o acadea, să se afle restul împărţirii lui m la 2020.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran restul împărţirii lui m la 2020.
Restricţii şi precizări[edit | edit source]
- 1 ⩽ n ⩽ 1018
Exemplul 1[edit | edit source]
- Intrare
2
- Iesire
Datele de intrare corespund restrictiilor impuse 9
Exemplu 2[edit | edit source]
- Intrare
10000000000000000000
- Iesire
Datele de intrare nu corespund restrictiilor impuse
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> def compute_ways(n):
mod = 2020 if n == 1: return 3 % mod elif n == 2: return 9 % mod else: return (3 * 3 * pow(2, n-2, mod)) % mod
def main():
n = int(input())
if n > pow(10, 18): print("Datele de intrare nu corespund restrictiilor impuse") return
ways = compute_ways(n) print("Datele de intrare corespund restrictiilor impuse") print(ways)
if __name__ == "__main__":
main()
</syntaxhighlight>
Explicatie[edit | edit source]
Cei doi copii puteau să-şi aleagă acadelele astfel: (c,c), (z,z), (v,v), (c,v), (v,c), (c,z), (z,c), (v,z), (z,v).