본문 바로가기

알고리즘 풀이

백준 2302번 극장 좌석

https://www.acmicpc.net/problem/2302


#include <cstdio>
#pragma warning(disable:4996)
#define MAX 40
int N;
int V;
long dp[MAX + 1] = { 0, };
bool seat[MAX + 1] = { 0, };
int main()
{
int result = 1;
int cnt = 0;
scanf("%d %d", &N, &V);
dp[0] = 1;
dp[1] = 1;
for (int i = 0; i < V; i++)
{
int idx = 0;
scanf("%d", &idx);
seat[idx-1] = true; // VIP
}
for (int i = 2; i <= N; i++)
dp[i] = dp[i - 2] + dp[i - 1];
for (int i = 0; i < N; i++)
{
if (seat[i])
{
result *= dp[cnt];
cnt = 0;
}
else
cnt++;
}
result *= dp[cnt];
printf("%d\n", result);
return 0;
}


'알고리즘 풀이' 카테고리의 다른 글

백준 5567번 결혼식  (0) 2018.03.25
백준 6359번 만취한 상범  (0) 2018.02.07
백준 9084번 동전  (0) 2018.01.24
백준 10942번 팰린드롬?  (0) 2018.01.22
백준 6603번 로또  (0) 2018.01.15