1860 - BlackFriday
Sursa: 1860 - BlackFriday
Cerinţa
Anul acesta unele magazine din România s-au hotărât să organizeze BlackFriday joia, altele de luni până joi, iar altele sâmbătă şi duminică. Ele au afişat n preţuri înainte de ieftinire şi cele n preţuri după ieftinire. Aflaţi ce produs s-a ieftinit cu cel mai mare procent.
Date de intrare
Fișierul de intrare blackfriday.in conține pe prima linie numărul n, pe a doua linie n numere naturale separate prin spații reprezentând preţurile înainte de ieftinire, iar pe a treia linie n numere naturale separate prin spații reprezentând preţurile corespunzătoare după ieftinire.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele din fișier sunt introduse corect.", apoi în fișierul blackfriday.out se va afișa pe prima linie numărul k, reprezentând numărul de ordine din şirul de preţuri dat al produsului care s-a ieftinit cu cel mai mare procent. În cazul în care datele din fișier nu respectă restricțiile, se va afișa pe ecran: "Datele din fișier nu corespund restricțiilor impuse.".
Restricţii şi precizări
- 2 ⩽ n ⩽ 10
- elementele vectorului vor fi cuprinse între 1 și 1.000.000.000
- dacă sunt mai multe preţuri care s-au ieftinit cu acelaşi procent se va afişa numărul de ordine mai mic
- preţurile după ieftinire sunt strict mai mici decât cele anterioare(evident).
Exemplu:
Exemple
Exemplul 1
- blackfriday.in
- 3
- 8 15 200
- 4 6 160
- Ecran
- Datele din fișier sunt introduse corect.
- blackfriday.out
- 2
Exemplul 2
- Intrare
- 4
- 8 15 200 12
- 4 6 160 16
- Ecran
- Datele din fișier nu corespund restricțiilor impuse.
- blackfriday.out
Rezolvare
<syntaxhighlight lang="python" line>
- 1860
def citire_conform_restrictiilor():
with open("blackfriday.in") as f: n = int(f.readline()) pret_initial = list(map(int, f.readline().split())) pret_redus = list(map(int, f.readline().split())) if n < 2 or n > 10: print("Datele nu corespund restricțiilor impuse.") exit() for elem in pret_initial: if elem < 1 or elem > 1000000000: print("Datele din fișier nu corespund restricțiilor impuse.") exit() for elem in pret_redus: if elem < 1 or elem > 1000000000: print("Datele din fișier nu corespund restricțiilor impuse.") exit() for i in range(n): if(pret_initial[i] < pret_redus[i]): print("Datele din fișier nu corespund restricțiilor impuse.") exit() print("Datele din fișier sunt introduse corect.") return n, pret_initial, pret_redus
def afis_produsului_cu_reducerea_cea_mai_mare_in_blackfridayout(n, pret_initial, pret_redus):
max_reducere = -1 k = -1 for i in range(n): reducere = (pret_initial[i] - pret_redus[i]) / pret_initial[i] if reducere > max_reducere: max_reducere = reducere k = i + 1 with open("blackfriday.out", "w") as f: f.write(str(k))
if __name__ == '__main__':
n, pret_initial, pret_redus = citire_conform_restrictiilor() afis_produsului_cu_reducerea_cea_mai_mare_in_blackfridayout(n, pret_initial, pret_redus)
</syntaxhighlight>