3336 - acadele: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
 
Line 11: Line 11:
  2  
  2  
; Iesire
; Iesire
Datele de intrare corespund restrictiilor impuse
  9
  9
== Exemplu 2 ==
== Exemplu 2 ==

Latest revision as of 21:39, 2 January 2024

Cerinţa[edit]

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]

Programul citește de la tastatură numărul n.

Date de ieșire[edit]

Programul va afișa pe ecran restul împărţirii lui m la 2020.

Restricţii şi precizări[edit]

  • 1 ⩽ n ⩽ 1018

Exemplul 1[edit]

Intrare
2 
Iesire
Datele de intrare corespund restrictiilor impuse
9

Exemplu 2[edit]

Intrare
10000000000000000000
Iesire
Datele de intrare nu corespund restrictiilor impuse

Rezolvare[edit]

<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]

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).