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
반응형
'자라는 개발자 > 문제풀이' 카테고리의 다른 글
백준 c++ 11053 가장 긴 증가하는 부분 수열 (0) | 2022.04.09 |
---|---|
백준 c++ 14582 오늘도 졌다 (0) | 2022.04.04 |
백준 c++ 2630 색종이 만들기 (0) | 2022.03.31 |
백준 c++ 11659 구간 합 구하기 4 (0) | 2022.03.30 |
백준 c++ 9095 1,2,3 더하기 (0) | 2022.03.30 |