작성일 :

문제 링크

2547번 - 사탕 선생 고창영

설명

n명의 학생이 가져온 사탕을 동일하게 나눌 수 있는지 판단하는 문제입니다.

총합이 n으로 나눠떨어지면 가능합니다.


접근법

사탕 수가 매우 클 수 있으므로 매번 나머지를 취하며 누적합니다.

최종 나머지가 0이면 YES, 아니면 NO를 출력합니다.


Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;

class Program {
  static void Main() {
    var t = int.Parse(Console.ReadLine()!);
    for (var tc = 0; tc < t; tc++) {
      Console.ReadLine();
      var n = long.Parse(Console.ReadLine()!);
      var mod = 0L;
      for (var i = 0L; i < n; i++) {
        var x = long.Parse(Console.ReadLine()!);
        mod = (mod + x) % n;
      }
      Console.WriteLine(mod == 0 ? "YES" : "NO");
    }
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int t;
  if (!(cin >> t)) return 0;
  while (t--) {
    string blank;
    getline(cin, blank);
    getline(cin, blank);
    ll n;
    cin >> n;
    ll mod = 0;
    for (ll i = 0; i < n; i++) {
      ll x; cin >> x;
      mod = (mod + x) % n;
    }
    cout << (mod == 0 ? "YES" : "NO") << "\n";
  }

  return 0;
}