119AC - ABC064C: Colorful Leaderboard

ABC064-C (300 points)
問題

 N 人のAtCoder参加者(それぞれのレートは  a_i で与えられる)がいるとき, 色の種類数の最小値と最大値を求める. ただし, レート3200以上の人は好きな色を選べるものとする.

  •  1 \leq N \leq 100
  •  1 \leq a_i \leq 4800
  • 入力は全て整数
方針
  • レート3200未満の人は人権がないので, 自動的に色が決まる.
  • レート3200以上の方々か全員同じ色を選ばれる場合(最小値), 全員違う色を選ばれる場合(最大値)で場合わけ.
# input
N = int(input())
A = list(map(int, input().split()))

count = [0, 0, 0, 0, 0, 0, 0, 0, 0]

for i in range(N):
    if A[i] < 400:
        count[0] = 1
    elif A[i] < 800:
        count[1] = 1
    elif A[i] < 1200:
        count[2] = 1
    elif A[i] < 1600:
        count[3] = 1
    elif A[i] < 2000:
        count[4] = 1
    elif A[i] < 2400:
        count[5] = 1
    elif A[i] < 2800:
        count[6] = 1
    elif A[i] < 3200:
        count[7] = 1
    else:
        count[8] += 1

color_max = sum(count)
if count[8] == 0:
    color_min = sum(count)
else:
    color_min = sum(count[:7]) + 1

print(color_min, color_max)