3180 - Marte1
Sursa: 3180 - Marte 1
Cerinţa[edit | edit source]
Pe planeta Marte banii sunt altfel decât la noi. Există 3 tipuri de monede: primul tip de monedă valorează moenda_tip1 lei marțieni, al doilea tip valorează moenda_tip2 lei marțieni, iar al treilea tip de monedă valorează moenda_tip3 lei marțieni. Marțianul Iggle are cantitate_tip1 monede de primul tip, cantitate_tip2 monede de al doilea tip și cantitate_tip3 monede de al treilea tip. Câți lei marțieni are Iggle?
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele moenda_tip1, moenda_tip2, moenda_tip3, sepratate prin câte un spațiu, iar pe rândul următor numerele cantitate_tip1, cantitate_tip2, cantitate_tip3 și acestea separate tot prin câte un spațiu.
Date de ieșire[edit | edit source]
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse.", urmat, pe rândul următor, de suma pe care o deține Iggle. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa "Datele de intrare nu corespund restricțiilor impuse.".
Restricţii şi precizări[edit | edit source]
- moenda_tip1, moenda_tip2, moenda_tip3 ∈ ℕ
- cantitate_tip1, cantitate_tip2, cantitate_tip3 ∈ ℕ
- 1 ⩽ moenda_tip1, moenda_tip2, moenda_tip3 ⩽ 1.000
- 1 ⩽ cantitate_tip1, cantitate_tip2, cantitate_tip3 ⩽ 10.000
Exemplu[edit | edit source]
- Intrare
- 2 3 7
- 4 2 2
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 28
- Intrare
- 0 5 3
- 5 5 5
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
- Intrare
- -2 abs 5
- -10 2 5
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line>
- 3180 - Marte 1
def validare_date_tip_monede(moneda_tip1: str, moneda_tip2: str, moneda_tip3: str) -> bool:
if moneda_tip1.isdigit() and moneda_tip2.isdigit() and moneda_tip3.isdigit(): if 1 <= int(moneda_tip1) <= 1_000 and 1 <= int(moneda_tip2) <= 1_000 and 1 <= int(moneda_tip3) <= 1_000: return True return False
def validare_date_cantitate(cantitate_tip1: str, cantitate_tip2: str, cantitate_tip3: str) -> bool:
if cantitate_tip1.isdigit() and cantitate_tip2.isdigit() and cantitate_tip3.isdigit(): if 1 <= int(cantitate_tip1) <= 10_000 and 1 <= int(cantitate_tip2) <= 10_000 and 1 <= int(cantitate_tip3) <= 10_000: return True return False
def marte1(*arg) -> int:
moneda_tip1: int = arg[0] moneda_tip2: int = arg[1] moenda_tip3: int = arg[2] cantitate_tip1: int = arg[3] cantitate_tip2: int = arg[4] cantitate_tip3: int = arg[5] return moneda_tip1 * cantitate_tip1 + moneda_tip2 * cantitate_tip2 + moenda_tip3 * cantitate_tip3
if __name__ == "__main__":
linia1 = input() linia1 = linia1.split(" ") moneda_tip1, moneda_tip2, moneda_tip3 = linia1[0], linia1[1], linia1[2] linia2 = input() linia2 = linia2.split(" ") cantitate_tip1, cantitate_tip2, cantitate_tip3 = linia2[0], linia2[1], linia2[2] if validare_date_tip_monede(moneda_tip1, moneda_tip2, moneda_tip3) and validare_date_cantitate(cantitate_tip1, cantitate_tip2, cantitate_tip3): moneda_tip1, moneda_tip2, moneda_tip3 = int(moneda_tip1), int(moneda_tip2), int(moneda_tip3) cantitate_tip1, cantitate_tip2, cantitate_tip3 = int(cantitate_tip1), int(cantitate_tip2), int(cantitate_tip3) print("Datele de intrare corespund restricțiilor impuse.") print(marte1(moneda_tip1, moneda_tip2, moneda_tip3, cantitate_tip1, cantitate_tip2, cantitate_tip3)) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>