網易2017內推筆試1:分蘋果 [python]
阿新 • • 發佈:2019-02-03
'''
[程式設計題] 分蘋果
時間限制:1秒
空間限制:32768K
n 只奶牛坐在一排,每個奶牛擁有 ai 個蘋果,現在你要在它們之間轉移蘋果,
使得最後所有奶牛擁有的蘋果數都相同,每一次,你只能從一隻奶牛身上拿走恰好兩個蘋果到另一個奶牛上,
問最少需要移動多少次可以平分蘋果,如果方案不存在輸出 -1。
輸入描述:
每個輸入包含一個測試用例。每個測試用例的第一行包含一個整數 n(1 <= n <= 100),
接下來的一行包含 n 個整數 ai(1 <= ai <= 100)。
輸出描述:
輸出一行表示最少需要移動多少次可以平分蘋果,如果方案不存在則輸出 -1。
輸入例子1:
4
7 15 9 5
輸出例子1:
3
'''
'''
解題思路:仔細小心
這道題的解題思路不難,看程式碼應該可以理解,小心仔細,別犯一下粗心錯誤就行
'''
'''
程式碼執行結果:
答案正確:恭喜!您提交的程式通過了所有的測試用例
[程式設計題] 分蘋果
時間限制:1秒
空間限制:32768K
n 只奶牛坐在一排,每個奶牛擁有 ai 個蘋果,現在你要在它們之間轉移蘋果,
使得最後所有奶牛擁有的蘋果數都相同,每一次,你只能從一隻奶牛身上拿走恰好兩個蘋果到另一個奶牛上,
問最少需要移動多少次可以平分蘋果,如果方案不存在輸出 -1。
輸入描述:
每個輸入包含一個測試用例。每個測試用例的第一行包含一個整數 n(1 <= n <= 100),
接下來的一行包含 n 個整數 ai(1 <= ai <= 100)。
輸出描述:
輸出一行表示最少需要移動多少次可以平分蘋果,如果方案不存在則輸出 -1。
輸入例子1:
4
7 15 9 5
輸出例子1:
3
'''
'''
解題思路:仔細小心
這道題的解題思路不難,看程式碼應該可以理解,小心仔細,別犯一下粗心錯誤就行
'''
'''
程式碼執行結果:
答案正確:恭喜!您提交的程式通過了所有的測試用例
'''
n = int(input()) a_n = [int(each) for each in input().split()] if sum(a_n) % n != 0: print(-1) else: max_apple = max(a_n) min_apple = min(a_n) count = 0 while max_apple - min_apple > 2: a_n[a_n.index(max_apple)] = max_apple - 2 a_n[a_n.index(min_apple)] = min_apple + 2 max_apple = max(a_n) min_apple = min(a_n) count += 1 if a_n.count(a_n[0]) == n: print(count) else: print(-1)