카드 놓기
면접 대비시간 제한1초메모리 제한256 MB
1에서 99 사이의 수가 적힌 카드가 최대 10장 있을 때, k장을 골라 순서대로 이어 붙여 만들 수 있는 서로 다른 정수의 개수를 센다.
문제
상근이는 카드 ()장을 바닥에 나란히 놓고 놀고 있다. 각 카드에는 이상 이하의 정수가 하나씩 적혀 있다. 상근이는 이 카드 중에서 ()장을 골라, 고른 순서대로 왼쪽에서 오른쪽으로 늘어놓아 하나의 정수를 만들려고 한다. 상근이가 만들 수 있는 서로 다른 정수는 모두 몇 가지일까?
예를 들어 카드가 5장 있고 적힌 수가 1, 2, 3, 13, 21이라고 하자. 이 중 3장을 골라 정수를 만들 때, 2, 1, 13을 이 순서로 늘어놓으면 2113이 되고, 21, 1, 3을 이 순서로 늘어놓아도 2113이 된다. 이처럼 서로 다른 선택이 같은 정수를 만들 수도 있으므로, 중복을 제외한 서로 다른 정수의 개수를 세어야 한다.
장의 카드에 적힌 수가 주어졌을 때, 그중 장을 골라 만들 수 있는 서로 다른 정수의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 카드의 개수 이, 둘째 줄에 고를 카드의 개수 가 주어진다. 셋째 줄부터 개의 줄에 걸쳐 각 카드에 적힌 수가 한 줄에 하나씩 주어진다.
출력
상근이가 만들 수 있는 서로 다른 정수의 개수를 첫째 줄에 출력한다.
힌트
카드가 의 4장이고 일 때, 상근이는 의 7가지 정수를 만들 수 있다.