2018 - Rogvaiv

From Bitnami MediaWiki
Revision as of 21:50, 8 January 2024 by Oros Ioana Diana (talk | contribs) (Pagină nouă: == Cerința == Vecinul meu, Dorel, tocmai s-a mutat la casă şi vrea să-şi vopsească gardul. Fiind îndrăgostit de frumos, a cumpărat 7 cutii de vopsea: roşu, orange, galben, verde, albastru, indigo şi violet. Acum însă, are o dilemă: în câte moduri poate vopsi cele n uluci ale gardului, ştiind că fiecare ulucă poate fi vopsită cu oricare dintre culorile cumpărate? == Date de intrare == Fișierul de intrare rogvaivin.txt conține pe prima linie numărul n. =...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința

Vecinul meu, Dorel, tocmai s-a mutat la casă şi vrea să-şi vopsească gardul. Fiind îndrăgostit de frumos, a cumpărat 7 cutii de vopsea: roşu, orange, galben, verde, albastru, indigo şi violet. Acum însă, are o dilemă: în câte moduri poate vopsi cele n uluci ale gardului, ştiind că fiecare ulucă poate fi vopsită cu oricare dintre culorile cumpărate?

Date de intrare

Fișierul de intrare rogvaivin.txt conține pe prima linie numărul n.

Date de ieșire

Fișierul de ieșire rogvaivout.txt va conține pe prima linie numărul de moduri în care Dorel poate vopsi gardul, modulo 1.000.000.007.

Restricții și precizări

  • numărul n are cel mult 1.000.000 de cifre.

Exemplu 1

rogvaivin.txt
3
rogvaivout.txt
343


Exemplu 2

rogvaivin.txt
5
rogvaivout.txt
16807


Rezolvare

<syntaxhighlight lang="python" line>

  1. 2018 - Rogvaiv
  2. Citirea datelor de intrare

try:

   with open("rogvaivin.txt", "r") as f:
       n = int(f.readline())

except Exception as e:

   print("Fals")
   exit()
  1. Verificarea restricțiilor

if n <= 0 or n > 1000000:

   print("Fals")
   exit()
  1. Calculul numărului de moduri

mod = 1000000007 ways_to_paint = pow(7, n, mod)

  1. Scrierea rezultatului în fișierul de ieșire

with open("rogvaivout.txt", "w") as f_out:

   f_out.write(str(ways_to_paint))

</syntaxhighlight>

Explicatie

Fiecare ulucă poate fi vopsită cu una din cele 7 culori, deci avem 7•7•7=343 moduri.