RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R00176

좌석 배치 경우의 수

Gold V 골드 V
난이도
2s
시간 제한
256MB
메모리 제한
1
맞았습니다!!
1
제출 수
100.0%
정답률
레이팅

의견: 0

설명

행사 진행자 하린이는 \(N\) 명의 손님을 \(N\) 개의 좌석에 한 명씩, 빈 좌석 없이 모두 앉히려 한다. 그런데 손님마다 앉을 수 있는 좌석이 정해져 있다.

\(i\) 번째 손님이 \(j\) 번째 좌석에 앉을 수 있는지 여부가 \(N \times N\) 표로 주어진다. 모든 손님이 자신이 앉을 수 있는 좌석에 앉고, 한 좌석에 한 명만 앉도록 하는 서로 다른 배치의 수를 구하여라.

경우의 수가 매우 클 수 있으므로 \(1\,000\,000\,007\) 로 나눈 나머지를 출력하여라.

제약
  • \(1 \le N \le 16\)
  • 표의 각 문자는 0 또는 1 이다.
입력 형식

첫 줄에 손님과 좌석의 수 \(N\) 이 주어진다.

이어지는 \(N\) 개의 줄에 각각 길이 \(N\) 인 문자열이 주어진다. \(i\) 번째 줄의 \(j\) 번째 문자가 1 이면 \(i\) 번째 손님이 \(j\) 번째 좌석에 앉을 수 있음을, 0 이면 앉을 수 없음을 뜻한다.

출력 형식

가능한 배치의 수를 \(1\,000\,000\,007\) 로 나눈 나머지를 한 줄에 출력한다.

예제 1
입력
2
11
01
출력
1
설명

2번 손님은 2번 좌석에만 앉을 수 있으므로 1번 손님이 1번 좌석에 앉는 배치 1가지뿐이다.

예제 2
입력
2
11
11
출력
2
설명

두 손님 모두 어느 좌석이든 가능하므로 서로 다른 배치는 2가지이다.

힌트

막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

좌석 배치 경우의 수

개요
출제자 난이도 Gold V 골드 V 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

좌석 배치 경우의 수

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8