3180 - Marte1

De la Universitas MediaWiki

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