3566 - Templu

From Bitnami MediaWiki
Revision as of 15:56, 3 June 2024 by RebecaBud (talk | contribs) (Pagină nouă: == Cerinţa == Copa ajunse în Orintia unde există un templu cu mai multe nivele, baza fiind un pătrat de lungime L. Primul nivel are înălţimea egală cu N, iar celelalte nivele au înălţimea mai mare cu o unitate faţă de cel anterior. Spre exemplu pentru L = 5 şi N = 3 din stâncă răsări templul (imagine din avion şi de la sol): 3 3 3 3 3 3 4 4 4 3 3 4 5 4 3 3 4 4 4 3 3 3 3 3 3 5 4 4 4 3 3 3 3 3 Copa deschise un document vechi...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa[edit | edit source]

Copa ajunse în Orintia unde există un templu cu mai multe nivele, baza fiind un pătrat de lungime L. Primul nivel are înălţimea egală cu N, iar celelalte nivele au înălţimea mai mare cu o unitate faţă de cel anterior. Spre exemplu pentru L = 5 şi N = 3 din stâncă răsări templul (imagine din avion şi de la sol):

3 3 3 3 3 3 4 4 4 3 3 4 5 4 3 3 4 4 4 3 3 3 3 3 3


     5
   4 4 4
 3 3 3 3 3

Copa deschise un document vechi şi citi: „Ca să afli cât aur este în templu, trebuie să însumezi numărul de metri de pe fiecare orizontală…”. Şi Copa socoti: 3 + 3 + 3 + 3 + 3 = 15 ; 3 + 4 + 4 + 4 + 3 = 18 ; 3 + 4 + 5 + 4 + 3 = 19 ; celelalte 18 şi 15. „Apoi, trebuie să afli suma numerelor obţinute…”. Iar Copa îşi notă numărul 85. „Toate numerele obţinute se lipesc pentru a forma cel mai mic număr posibil…”. Şi Copa obţinu numărul: 151518181985 . „Din numărul acesta se caută cel mai mare număr de două cifre alăturate. Aceasta este cantitatea de aur din templu.”. Şi Copa ţipă de bucurie: 98!.

Plecaţi în Orintia! Veţi primi cele două numere N şi L şi vi se cere să determinaţi numărul obţinut din sume şi cantitatea de aur.

Date de intrare[edit | edit source]

Fişierul de intrare templu.in conţine pe prima linie numerele N şi L separate printr-un spaţiu.

Date de ieșire[edit | edit source]

Fişierul de iesire templu.out va conţine două linii. Pe câte o linie se va scrie câte un număr. Pe prima linie numărul obţinut din sume, iar pe a doua linie cantitatea de aur.

Restricţii şi precizări[edit | edit source]

  • 2≤L≤10
  • 1≤N≤50

Exemplul 1[edit | edit source]

templu.in
 3 5
templu.out
 151518181985
 98



Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def calculate_gold_quantity(N, L):

   total_sum = 0
   gold_number = ""
   
   for i in range(N):
       level_sum = 0
       for j in range(L):
           level_sum += N + j
           gold_number += str(N + j)
       total_sum += level_sum
   
   gold_quantity = max(int(gold_number[i:i+2]) for i in range(len(gold_number) - 1))
   
   return total_sum, gold_quantity

def main():

   with open("templu.in", "r") as fin:
       N, L = map(int, fin.readline().split())
   
   total_sum, gold_quantity = calculate_gold_quantity(N, L)
   
   with open("templu.out", "w") as fout:
       fout.write(str(total_sum) + "\n")
       fout.write(str(gold_quantity))

if __name__ == "__main__":

   main()

</syntaxhighlight>