高昌栄


質問する


キャンディ博士の高昌栄さんはキャンディ工場を辞め、小学校の先生になった.
今日は昌英と四組の同級生が遠足に行く日だ.N人の学生はみなかばんにキャンディをいっぱい入れた.
しかし、多くのキャンディを持った学生は、少量のキャンディを持った学生を笑い始めた.
昌英さんは「子供たち、そんなことはできないよ.あーん、キャンディを持ってきて、先生が公平に分けてあげます」と言った.
昌英はすべての学生に同じキャンディを持たせたいと思っている.
それは可能ですか?
入力
第1行は、試験例の個数Tを与える.各テストケースは空の行で区切られ、次のように構成されています.
テストケースの最初の行は学生数Nを示した.次のN行は、学生1人当たりのキャンディの数を与えた.
Nは100000以下の自然数であり、キャンディの個数は0以上の整数である.学生たちが持ってきたキャンディの数は10^18以下です.(学生たちが持ってきたキャンディの数の和は10^18を超えることができます)
しゅつりょく
各テストボックスについて、同じキャンディを配布できればYES、なければNOを出力します.
入力例1
2
5
5
2
7
3
8
6
7
11
2
7
3
4
サンプル出力1
YES
NO

解法


キャンディ個数の和が大きすぎるため,キャンディ個数を積算する過程でモジュール乗算を利用した.

コード#コード#

import sys

T = int(sys.stdin.readline())
for _ in range(T):
    empty = sys.stdin.readline()
    N = int(sys.stdin.readline())
    total = 0
    for __ in range(N):
        candy = int(sys.stdin.readline())
        total = (candy + total) % N         # 모듈러 연산
    result = 'NO'
    if total % N == 0:
        result = 'YES'
    print(result)
高昌栄