HCPC 팀 짜기
면접 대비시간 제한1초메모리 제한1024 MB
각 사람이 원하는 사람이 없거나, 원하는 사람이 같은 팀에 포함되는 조건을 만족하는 3인 팀의 경우의 수를 10^9+7로 나눈 나머지를 구한다.
문제
동민이는 HCPC에 나갈지 말지 고민하는 사람 명 중 명을 뽑아 팀을 만들어주려 한다.
각 사람들은 부터 까지 번호가 차례대로 매겨져 있다. 이 중에는 원하는 사람 한 명과 같은 팀이어야 참가하는 사람도 있고, 원하는 사람이 없어 누구와 같은 팀이든 상관없이 참가할 수 있는 사람도 있다.
동민이는 각 사람이 원하는 사람이 있는지, 있다면 누구인지 모두 조사해 두었다. 하지만 어떤 조합으로 인 팀을 만들 수 있는지는 아직 구하지 못했다. 동민이를 위해 인 팀을 만들 수 있는 경우의 수를 계산하는 프로그램을 작성해 주자. 단, 답이 너무 커질 수 있으니 경우의 수를 로 나눈 나머지를 출력한다.
입력
첫째 줄에 사람의 수를 의미하는 정수 이 주어진다.
둘째 줄에 개의 정수 , , , 이 공백으로 구분되어 주어진다. 라면 번 사람은 원하는 사람이 없다는 의미이며, 아니라면 는 번 사람이 원하는 사람의 번호를 의미한다.
출력
명의 사람 중 명을 뽑아 하나의 팀을 구성하는 경우의 수를 로 나눈 나머지를 출력한다.