פתרון לMosaic Decoration II
מה רוצים בתרגיל
נתון קיר ברוחב W וגובה H שהוא רוצה לשים עליו אריחים ברוחב A וגובה B לאורך כל הקיר.
ניתן לקנות אריחים רק בשקים של 10 וכל שק עולה M דולר.
במידה שלא ניתן להכניס את כל האריחים במדיוק ניתן לחתוך את האריחים במחיר של C למטר.
צריל חשב כמה יעלה כל הבלגאן הזה
איך פותרים
ראשית נמצא כמה אריחים שלמים ניתן לשים על הקיר בכך שנחלק את אורך הקיר באורך האריח וגובה הקיר בגובה האריח
width_of_wall = W//A
height_of_wall = H//B
בוקדים אם לאורך רוחב הקיר נכנס כמות מדוייקת של אריחים, אם לא מוסיפים עוד אריח לרוחב כי צריך בעצם אריח נוסף ומוסיפים למחיר של הלחתוך את הגובה של הקיר כי צריך לחתוך אותחו לאורך גובה כל הקיר.
נעשה אותו דבר גם לאורך גובה הקיר.
if W%A != 0:
cuts += H
width_of_wall += 1
if H%B != 0:
cuts += W
height_of_wall +=1
נחשב את שטח הקיר ובמידה הוא לא יוצא מספר עגול של עשרות נוסיף לו 1 כיוון שבמקרה כזה הוא צריך לקנות עוד שק של 10 חתיכות.
נדפיס את כמות השקים שיצא לנו כפול המחיר ואת כמות הלחתוך שיצא לנו כפול המחיר של הלחתוך
area = width_of_wall*height_of_wall
if area%10 == 0:
sum = area//10
else:
sum = area//10+1
print(sum*M + cuts*C)