3180 - Marte1
Sursa: 3180 - Marte 1
Cerinţa
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
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
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
- 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
- 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
Rezolvare ver. 1
# 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.")