איך פותרים את Hotel Wiring
מה רוצים בתרגיל
יש מלון עם M קומות וN חדרים בכל קומה,לכל קומה יש מפסק ראשי שהחדרים מחוברים אליו.
אממה,חלק מהחדרים מחוברים הפוך למפסק זאת אומרת שיש חדרים שהחשמל שלהם עובד כאשר המפסק הראשי דלוק וחלק מהחדרים עובדים כשהוא כבוי.
לדוגמא: יש קומה עם 4 חדרים כשאר 2 חדרים מחוברים סבבה(עובדים כאשר המפסק דלוק) ועוד 2 מחוברים הפוך(עובדים כאשר המפסק כבוי).
בתרגיל אתה מקבל M קומות, N חדרים בכל קומה(מס' החדרים שווה בכל קומה),כמה חדרים מחוברים בכל קומה ואת מספר המפסקים שאתה אמור לכבות
ואתה צריך ליצור אלגוריתם שמייצר לך את מספר החדרים המקסימאלי שהחשמל יעבוד בהם.
לדוגמא:אתה מקבל 2 קומות עם 2 חדרים בכל קומה שבקומה א' 2 החדרים כל החדרים מחוברים נכון
ושבקומה ב' 0 חדרים מחוברים נכון ויש לך מפסק אחד שאתה צריך לכבות אז אתה תעדיף לכבות את המפסק בחדר השני וככה יהיה לך 4 חדרים עם חשמל תקין
קלט
שורה ראשונה-משתנה(T)שאומר כמה בדיקות כאלה אתה עושה(מספר הקבוצות שאתה צריך לעשות עליהם את האלגוריתם).
שורה שניה-כמות הקומות(M), כמות החדרים(N), וקמות המפסקים שצריך להוריד(K).
ואז יהיה M שורות(שורה לכל קומה) שבכל שורה יהיה את מספר החדרים שהחשמל אצלם תקין
התשובה שצריך להדפיס
צריך להדפיס T שורות(שורה לכל בדיקה) שבכל שורה צריך להדפיס את הכמות המקסימאלית של החדרים שהחשמל בהם יעבוד
איך פותרים
יוצרים מערך מכניסים לתוכו את כל החדרים התקינים בכל קומה ועושים sort למערך ככה שבתחילת המערך יהיה את הקומות עם המספר הכי קטן של חדרים תקינים
wrong_wired_list = []
for floors_index in range(number_of_floors):
wrong_wired_list.append(int(input()))
wrong_wired_list.sort()
ואז רצים על לולאה באורך של מספר המפסקים שאמורים לכבות(ככה שיוצא שאתה מכבה את הקומות שרוב החדרים שלהם לא תקין)
ובלולאה מחסרים את מספר הכללי במספר החדרים העובדים בקומות האלה
וככה בעצם הופכים את הערך בתא לערך של החדרים שהחשמל שלהם הפוך בקומה(וכאילו כיבינו את המפסק ככה שיעבדו)
עושים sum לכל העריכים במערך וזאת התשובה לכל בדיקה
for switches_index in range(switches_flip):
wrong_wired_list[switches_index] = number_of_rooms - wrong_wired_list[switches_index]
Sum = sum(wrong_wired_list)
print(Sum)