3336 - acadele: Diferență între versiuni
De la Universitas MediaWiki
(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ă...) |
Fără descriere a modificării |
||
Linia 7: | Linia 7: | ||
== Restricţii şi precizări == | == Restricţii şi precizări == | ||
* '''1 ⩽ n ⩽ 1018''' | * '''1 ⩽ n ⩽ 1018''' | ||
== Exemplul 1 == | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
Linia 13: | Linia 12: | ||
; Iesire | ; Iesire | ||
9 | 9 | ||
== Exemplu 2 == | == Exemplu 2 == | ||
; Intrare | ; Intrare | ||
Linia 19: | Linia 17: | ||
; 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> | ||
Linia 47: | Linia 44: | ||
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). |
Versiunea de la data 2 ianuarie 2024 21:27
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ă numărul n.
Date de ieșire
Programul va afișa pe ecran restul împărţirii lui m la 2020.
Restricţii şi precizări
- 1 ⩽ n ⩽ 1018
Exemplul 1
- Intrare
2
- Iesire
9
Exemplu 2
- Intrare
10000000000000000000
- Iesire
Datele de intrare nu corespund restrictiilor impuse
Rezolvare
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()
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).