자라는 개발자/문제풀이
백준 c++ 24912 카드 색칠
자란다
2022. 4. 3. 22:55
728x90
반응형
24912 카드색칠
문제 풀이
#include <iostream>
#include <vector>
using namespace std;
void fast_io(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
int n, arr[1000001];
vector<int> v;
int main()
{
fast_io();
cin >> n;
for (int i = 0; i < n;i++)
{cin >> arr[i];
if(!arr[i])
v.push_back(i);
}
for (int i = 0; i < n - 1;i++)
if(arr[i] && arr[i] == arr[i+1])
{
cout << "-1";
return 0;
}
for (int i = 0; i < v.size();i++)
{
if(!arr[v[i]])
{
for (int j = 1; j < 4;j++)
if(arr[v[i]-1]!=j && arr[v[i]+1]!=j)
{ arr[v[i]] = j;
break;}
}
}
for (int i = 0; i < n;i++)
cout << arr[i] << " ";
}
0이 없는경우에만 종료시켰더니 29점이 나왔다.
왲?? 하고 보니까 서브태스크에 이런저런말이 있길래 다른조건을 추가시켜줬다.
728x90
반응형