Problem:


Score : 200 points

Problem Statement

An X-layered kagami mochi (X ≥ 1) is a pile of X round mochi (rice cake) stacked vertically where each mochi (except the bottom one) has a smaller diameter than that of the mochi directly below it. For example, if you stack three mochi with diameters of 10, 8 and 6 centimeters from bottom to top in this order, you have a 3-layered kagami mochi; if you put just one mochi, you have a 1-layered kagami mochi.

Lunlun the dachshund has N round mochi, and the diameter of the i-th mochi is d_i centimeters. When we make a kagami mochi using some or all of them, at most how many layers can our kagami mochi have?

Constraints

1 ≤ N ≤ 100

1 ≤ d_i ≤ 100

All input values are integers.

Input

Input is given from Standard Input in the following format:

N
d_1
:
d_N

Output

Print the maximum number of layers in a kagami mochi that can be made.

Sample Input 1

4
10
8
8
6

Sample Output 1

3

If we stack the mochi with diameters of 10, 8 and 6 centimeters from bottom to top in this order, we have a 3-layered kagami mochi, which is the maximum number of layers.

Sample Input 2

3
15
15
15

Sample Output 2

1

When all the mochi have the same diameter, we can only have a 1-layered kagami mochi.

Sample Input 3

7
50
30
50
100
50
80
30

Sample Output 3

4



Sample input:
4
10
8
8
6


Sample output:
3

Submission status: Runtime Error

Solution code:
mport subprocess
import gzip, base64, os
import stat

gz = b'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'
bin = gzip.decompress(base64.b64decode(gz))
p = os.path.dirname(__file__)
pymain = os.path.join(p, "a.out")
with open(pymain, "wb") as f:
    f.write(bin)
os.chmod(pymain, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR)
if p == "":
    pymain = "./" + pymain
subprocess.call(pymain)


# compiled by pythran
'''
#pythran export main2()
def main2():
    stdin = open('/dev/stdin')
    N = int(stdin.readline())
    s = set()
    for i in range(N):
        s.add(int(stdin.readline()))
    print(len(s))
'''

Submission status: Runtime Error

Solution code:
N = int(input())
d = [int(input()) for _ in range(N)]
cnt = []
for i in d :
	if i not in cnt :
    	cnt.append(i)
    
print(len(cnt))

Submission status: Runtime Error

Solution code:
n = int(input())
d = sorted([int(input()) for _ in range(n)])
cnt = 1
for a, b in zip(cnt[1:], cnt):
    if a > b:
        cnt += 1
print(cnt)

Submission status: Runtime Error

Solution code:
n = int(input())
S = set([int(input()) for in range(n)])
print(len(S))

Submission status: Runtime Error

Solution code:
n = input()
S = set([int(input()) for in range(n)])
print(len(S))

Submission status: Runtime Error

Solution code:
n = input()
S = set(int(input()) for in range(n))
print(len(S))

Submission status: Runtime Error

Solution code:
n = input()
d = [int(input()) for i in range(n)]
print(len(set(d)))

Submission status: Runtime Error

Solution code:
n = int(input())
loop = 0
array = []
moti = []

while loop < n :
    array.append(int(input()))
    loop += 1

for i in array:
    if moti.count( array[i] )==0:
        moti.append(array[i])

print(len(moti))

Submission status: Runtime Error

Solution code:
n = int(input())
n_list =[]
for i in range(n+1):
  n_list.append(int(input()))
print(len(set(n_list)))

Submission status: Runtime Error

Solution code:
n = int(input())
n_list =[]
for i in range(n+1):
  n_list.append(int(input()))
print(set(len(n_list)))

Submission status: Runtime Error

Solution code:
N= int(input())
num = list()

for i in range(0,N-1):
  d = int(input())
  num[d] = 1
  
res = 0
for i in range (0,101):
  res += num[i]
  
print(res)

Submission status: Runtime Error

Solution code:
N= int(input())
num = list()

for i in range(0,N-1):
  d = int(input())
  num[d] = 1
  
res = 0
for i in range (0,N-1):
  res += num[i]
  
print(res)

Submission status: Runtime Error

Solution code:
print(len(set([int(input()) for _ in range(input())])))

Submission status: Runtime Error

Solution code:
print(len(set([int(input()) for _　in range(input())])))

Submission status: Runtime Error

Solution code:
len(set([int(input()) for _　in range(input())]))

Submission status: Runtime Error

Solution code:
n=input()
l=[int(input()) for i in range(n)]
s=set(l)
print(len(s))

Submission status: Runtime Error

Solution code:
n=input
l=[int(input()) for i in range(n)]
s=set(l)
print(len(s))

Submission status: Runtime Error

Solution code:
N=int(input())
l=[0 for _ in range(N)]
for _ in range(N):
  l[int(input())-1]=1
print(sum(l))

Submission status: Runtime Error

Solution code:
N=int(input())
l=[0 for _ in range(N)]
for _ in range(N):
  l[int(input())]=1
print(sum(l))

Submission status: Runtime Error

Solution code:
print(len(set([int(input()) for i in range(int(input()))]))

Submission status: Runtime Error

Solution code:
N = int(input())
mochis = []
for _ in range(N):
	mochis.append(int(input()))

mochis = sorted(mochis, reverse=True)
dan = 0
for i in range(N):
	dan += 1
	if mochis[i] == mochis[i+1]:
		break

print(dan)

Submission status: Runtime Error

Solution code:
N = int(input())
mochis = []
for _ in range(N):
	mochis.append(int(input())

mochis = sorted(mochis, reverse=True)
dan = 0
for i in range(N):
	dan += 1
	if mochis[i] == mochis[i+1]:
		break

print(dan)

Submission status: Runtime Error

Solution code:
n = int(input())
d = [int(input()) for i in range(n)]
d.sort(reverse=True)
result = []
for i in range(n-1):
    count = 1
    if all(d[x] == d[i] for x in range(i,n)):
        count = 1
    else:
        if d[i] == d[i+1]:
            count += 1
        for j in range(i, n-1):
            if d[j] > d[j+1]:
                count += 1
    result.append(count)
print(max(result))

Submission status: Runtime Error

Solution code:
n = int(input())
d = [int(input()) for i in range(n)]
d.sort(reverse=True)
result = []
for i in range(n-1):
    count = 1
    if all(d[x] == d[i] for x in range(i,n)):
        count = 1
    else:
        if d[i] == d[i+1]:
            count += 1
        for j in range(n-i-1):
            if d[j+i] > d[j+i+1]:
                count += 1
    result.append(count)
print(max(result))

Submission status: Runtime Error

Solution code:
n = int(input())
d_list = list(map(int, input().split()))
d_list.sort(reverse = True)
count = 1

for i in range(1, n):
    if d_list[i] < d_list[i-1]:
        count += 1
print(count)

Submission status: Runtime Error

Solution code:
N = input()
dL = [0]*N
for n in range(N):
  dL[n] = int(input())
print(len(list(set(dL))))

Submission status: Runtime Error

Solution code:
N = int(input())
dL = []

for n in ranege(N+1):
  dL.append(int(input()))

dL.sort()
counter = 0

for n in range(N+1):
  if dL[n] == dL[n+1]:
    pass
  else:
    counter += 1

if counter == 0:
  counter = 1

print(counter)

Submission status: Runtime Error

Solution code:

nN = int(input())


nList = []

nTmp = int(input())
nList.append(nTmp)
nAns = 1

if (nN > 1):
  nTmp = int(input())
  if nTmp in nList:
    continue
  else:
    nList.append(nTmp)
    nAns += 1
  





print(nAns)

Submission status: Runtime Error

Solution code:
N, Y = map(int, input().split())
for i in range(N):
    for j in range(N-i):
        if 10000*i + 5000*j + 1000*(N-i-j) == Y:
            print('{} {} {}'.format(i,j,N-i-j))
            exit()
print("-1 -1 -1")

Submission status: Runtime Error

Solution code:
N = int(input())
d = set(int(input()) for i in range(N))
print(len(S))

Submission status: Runtime Error

Solution code:
N = int(input())
rice_cakes = [int(input()) for _ in range(N)]
print(len(set(rice_cakes))

Submission status: Runtime Error

Solution code:
N = int(input())
lst = []
for i in range(N):
    lst.append(int(input()))

lst.sort()
for j in range(len(lst)-1):
    if j > 0:
        if lst[j-1] == lst[j]:
            lst.remove(lst[j])
            
print(len(lst))

Submission status: Runtime Error

Solution code:
N= int(input())
d = list()
for i in range(N):
    d.append(int(input())

d_set = set(d)
d_list = list(d_set)
d_list.sort()

print(len(d_list))

Submission status: Runtime Error

Solution code:
n = int(input())
nums = [int(input()) for _ in range(int(input()))]
print(len(set(nums)))

Submission status: Runtime Error

Solution code:
# バケット法を用いる
def kagamiMochi():
	N = int(input())
	d = []
	for _ in range(0, N):
		d.append(int(input()))

	num = [0] * 100
	for i in range(0, N):
		num[d[i]] += 1

	count = 0
	for j in num:
		if j:
			count += 1
	print(count)

kagamiMochi()

Submission status: Runtime Error

Solution code:
from sys in stdin
N = input()
print(len(set(stdin.read().splitlines())))

Submission status: Runtime Error

Solution code:
n = int(input())
print len(set(map(int,[input() for i in range(n)])))

Submission status: Runtime Error

Solution code:
n = int(input())
l = []
for _ in range(n):
	l.append(int(input()))
list(set(l.sorted()))
print(len(l))

Submission status: Runtime Error

Solution code:
a, b = map(int, input().split())
s = input()
ans = 0
for i in range(len(s)):
    if s[i] == "-":
        if i == a and len(s)-i-1 == b:
            ans = 1
            for j in range(b):
                if s[-j] == "-":
                    ans = 0
                    break
            break
if ans == 0:
    print("No")
else:
    print("Yes")

Submission status: Runtime Error

Solution code:
n = int(input())
list1 = []
list2 = []
for i in range(0,n):
    list1.append(int(input()))

for i in range(0,len(list1)):
    if not(list1[1] in list2):
        list2.append(list1[i])
print(len(list2))

Submission status: Runtime Error

Solution code:
n = int(input())
list1 = []
list2 = []
for i in range(0,n):
    list1.append(int(input()))

for i in range(0,len(list1)):
    if not(list1[1] in list2):
        list2.append(list1.pop(i))
print(len(list2))

Submission status: Runtime Error

Solution code:
n = int(input)
l = []
for i in range(n):
    l.append(i)
print(len(set(l)))

Submission status: Runtime Error

Solution code:
n=int(input())
a = []
for _ in range(n):
    a.append(int(input()))
for x in range(n-1):
    for y in range(x+1,n):
        if a[y] == a[x]:
            a.remove(a[x])

print(len(a))

Submission status: Runtime Error

Solution code:
if __name__ == '__main__':
    N = int(input())
    l = [list(map(int, input())) for i in range(N)]
    # l = [10, 8, 8, 6]
    s = set(l)
    print(len(s))

Submission status: Runtime Error

Solution code:
N, Y = map(int, input().split())

for a in range(N):
    for b in range(N - a):
        c = N - a - b
        if 0 <= c <= 2000 & 10000 * a + 5000 * b + 1000 * c == Y:
            print(a,b,c)
            exit()

print(-1, -1, -1)

Submission status: Runtime Error

Solution code:
n = int(input())
num = {}
for i in range(n):
    a = input()
    num[a]=True
print(num.keys().count())

Submission status: Runtime Error

Solution code:
n = int(input())
num = {}
for i in range(n):
	a = input()
    num[a]=True
print(num.keys().count())

Submission status: Runtime Error

Solution code:
N = int(input())
X = [int(input()) for i in range(N)]
cnt = 0
lst = []
X.sort()
for i in range(N-1):
  if X[i] < X[i+1] :
    cnt += 1
  else:
    lst.append(cnt)
    cnt = 0
print(min(lst))

Submission status: Runtime Error

Solution code:
n=int(input())
li=[]
for i in range(n):
  li[i]=int(input())
print(len(list(set(li))))

Submission status: Runtime Error

Solution code:
n=int(input())

D=[]

for i in range(n):
  d=int(input())
  D.append(d)

print(collections.Counter(D))

Submission status: Runtime Error

Solution code:
def main():
  array = []
  
  size = input()
  for i in range(size):
    array.append(int(input()))
    
  array.sort(reverse=True)
  
  result = 1
  for i in range(len(array)-1):
    if array[i] != array[i+1]:
      result+=1
  
  print(result)
    
    
main()

Submission status: Runtime Error

Solution code:
n = int(input())
D = list(map(int,input().split()))
daburi = 0
for i in range(n):
    for j in range(n):
        if i != j and D[i] == D[j]:
            daburi += 1
print(n - daburi)

Submission status: Runtime Error

Solution code:
n = int(input())
D = list(map(int,input().split()))
daburi = 0
for i in range(n):
    for j in range(n):
        if i != j and D[i] == D[j]
            daburi += 1
print(n - daburi)

Submission status: Runtime Error

Solution code:
n = int(input())
print(len(set(map(int, [input for i in range(n)]))))

Submission status: Runtime Error

Solution code:
a = int(input())
mochi = []
for _ in range(a):
    mochi.append(int(input())

print(len(set(mochi)))

Submission status: Runtime Error

Solution code:
a = int(input())
mochi = []
for _ in range(a):
    mochi.append(int(input())

print(len(set(mochi)))

Submission status: Runtime Error

Solution code:
a = int(input())
mochi = []
for _ in range(a):
    mochi.append(int(input())
print(len(set(mochi)))

Submission status: Runtime Error

Solution code:
N,A,B = map(int,input().split())

def sum(N,A,B):
	sum = 0
	for a in range(10):
		for b in range(10):
			for c in range(10):
				for d in range(10):
					if N > a*1000 + b*100 + c*10 + d and a + b + c + d >= A and a + b + c + d <= B:
						sum += a*1000 + b*100 + c*10 + d					
					elif N == a*1000 + b*100 + c*10 + d:
						if a + b + c + d <= B and a + b + c + d >= A:
							sum += a*1000 + b*100 + c*10 + d
						print(sum)
						break
				else:
					continue
				break
			else:
				continue
			break
		else:
			continue
		break

sum(N,A,B)

Submission status: Runtime Error

Solution code:
n = int(input())
num_list = [input() for i in range(n)]

bucket = {}
for i in range(1,100):
    bucket[i] = 0
for i in range(n):
    bucket[int(num_list[i])] += 1
res = 0
for i in range(1,100):
    if bucket[i] > 0:
        res += 1

print(res)

Submission status: Runtime Error

Solution code:
n = int(input())
num_list = [input() for i in range(n)]

bucket = {}
for i in range(100):
    bucket[i] = 0
for i in range(n):
    bucket[int(num_list[i])] += 1
res = 0
for i in range(100):
    if bucket[i] > 0:
        res += 1

print(res)

Submission status: Runtime Error

Solution code:
length_list = []
for _ in range(n):
    x = int(input().split()[0])
    length_list.append(x)

print(len(list(set(length_list))))

Submission status: Runtime Error

Solution code:
n=int(input())
li=[input() for i in range(n)]
li.sort()
ans=0
if n=1:
  print(1)
else:
  for i in range(n-1):
    if li[i+1] > li[i]:
      ans+=1
print(ans)

Submission status: Runtime Error

Solution code:
n=int(input())
li=[input() for i in range(n)]
li.sort()
ans=0
if n=1:
  print(1)
else:
  for i in range(n-1):
    if li[i+1] > li[i]:
      ans+=1

Submission status: Runtime Error

Solution code:
n=int(input())
{input():1for i in range(n)}
print(sum({input():1for i in range(n)}.values()))

Submission status: Runtime Error

Solution code:
n=int(input())
d={input();1for i in range(n)}
print(sum(d.values()))

Submission status: Runtime Error

Solution code:
N = int(input())
d = [int(input()) for i in range(N)]
cnt = set(l)
print(len(cnt))

Submission status: Runtime Error

Solution code:
n=input()
mochi=[]
for i in range(n):
  k=int(input())
  mochi.append(k)
print(len(list(set(mochi))))

Submission status: Runtime Error

Solution code:
n=input()
mochi=[]
for i in range(n):
  k=int(input())
  mochi.append(k)
print(len(set(mochi)))

Submission status: Runtime Error

Solution code:
N=input()
di = []
for i in range(N):
    di.append(input())
print(len(list(set(di))))

Submission status: Runtime Error

Solution code:
print(len(set(int(input()) for _ in range(int(input()))))

Submission status: Runtime Error

Solution code:
#バケット法による解
N = int(input())
dlist = []
for i in range(N):
    dlist.append(int(input()))
dbacket = [0]*100
for d in dlist:
    dbacket[d] += 1
answer = 0
for db in dbacket:
    if db > 0:
        answer += 1
print(answer)

Submission status: Runtime Error

Solution code:
#include<iostream>
#include<set>
using namespace std;

int main(){
    int N;
    int d[110];
    cin>>N;
    for(int i=0;i<N;i++){
        cin>>d[i];
    }
    set<int>values;
    for (int i=0;i<N;i++){
        values.insert(d[i]);
    }
    cout<<values.size()<<endl;
}

Submission status: Runtime Error

Solution code:
N = input()

a = []
for i in range(int(N)):
  a.append(input())

cnt = []
cnt2 = 0
while(int(N)-cnt2 != 0):
  s = a.count(a[0])-1
  cnt.append(s)
  a.remove(a[0])
  cnt2 += s+1
su = sum(cnt)
print(int(N)-su)

Submission status: Runtime Error

Solution code:
N = input()

a = []
for i in range(int(N)):
  a.append(input())

cnt = []
cnt2 = 0
while(int(N)-cnt2 != 0):
  s = a.count(a[0])-1
  cnt.append(s)
  a.remove(a[0])
  cnt2 += s+1
  print(cnt)
su = sum(cnt)
print(int(N)-su)

Submission status: Runtime Error

Solution code:
a,b=map(int,input().split())
for s in range(b//10000+1):
    try:
        for t in range(b//5000+1):
            r=b-s-t
            if 10000*s+5000*t+1000*r==b and s+t+r==a:
                print(s,t,r)
                exit()
    except ZeroDivisionError:
        continue
print(-1,-1,-1)

Submission status: Runtime Error

Solution code:
n=int(input())
arr=[int(input()) for idx in range(n)]

print(length(list(set(arr))))

Submission status: Runtime Error

Solution code:
n=int(input())
arr=[int(input()) for idx in range(n)]

print(length(set(arr)))

Submission status: Runtime Error

Solution code:
n = input()
a = np.array(list(map(int, input().split())))

print(len(np.unique(a)))

Submission status: Runtime Error

Solution code:
import numpy as np

a = list(map(int, input().split()))
arr = np.array(a[1:])

print(len(np.unuque(arr)))

Submission status: Runtime Error

Solution code:
n = int(input())
list = [int(input()) for i in range(n)]
check = 101
count = 0

list.sorted(reverse=True)

for k in list:
    if k < check:
        count += 1
        check = k

print(count)

Submission status: Runtime Error

Solution code:
N = int(input())
d = []
for _ in range(N):
  d.append(int(input())
print(len(set(d)))

Submission status: Runtime Error

Solution code:
n = int(input())
m = [int(input()) for i in range(n)]
mso = sorted(m)
count = 0
for s in range(1,n):
  if mso[s] == mso[s-1]
    count += 1
print(n-count)

Submission status: Runtime Error

Solution code:
#include <iostream>
#include<set>
#include<math.h>
using namespace std;
#define rep(i, n) for(int i=0;i<n;i++)

int main(){
    int N;
    cin >> N;
    set <int> s;
    int tmp;
    
    rep(i, N){
        cin >> tmp;
        s.insert(tmp);
    }
    cout << s.size() << endl;

    return 0;
}

Submission status: Runtime Error

Solution code:
print(len(set([input()for i in range(n)])))