# 단순 구현 # 자료 구조
흠... 설명할 말이 읍다...
#include <iostream> #include <vector> #define MAX 200005 #pragma warning(disable:4996) using namespace std; int n,m,c=0,mem[MAX]; vector<int> v; bool tf[MAX]; int main() { fill_n(&mem[0],MAX,-1); scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&m); c=max(c,m); if(tf[m]==false) { v.push_back(m); tf[m]=true; } else while(v.back()!=m) { mem[v.back()]=m; v.pop_back(); } } printf("%d\n",c+1); for(int i=0;i<=c;i++) printf("%d ",mem[i]); return 0; }
'IT > BOJ' 카테고리의 다른 글
백준(BOJ) 15805 영우의 기숙사 청소 ** (0) | 2018.06.16 |
---|---|
백준(BOJ) 1495 기타리스트 ** (0) | 2018.06.15 |
백준(BOJ) 15804 저거 못타면 지각이야!! ** (0) | 2018.06.15 |
백준(BOJ) 1572 중앙값 *** (0) | 2018.06.13 |
백준(BOJ) 14921 용액 합성하기 ** (0) | 2018.06.13 |