반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include <iostream> #include <algorithm> #include <cmath> #include <functional> using namespace std; char str[500001]; char result[500001]; int main() { ios::sync_with_stdio(false); int N, K; cin >> N >> K >> str; int L = N - K; int len = 0; for (int i = 0; i < N; ++i) { if (N - i <= L - len) { result[len++] = str[i]; } else { char *ptr = upper_bound(result + max(L - (N - i), 0), result + len, str[i], greater<char>()); int idx = ptr - result; if (idx >= L) continue; result[idx] = str[i]; len = idx + 1; } } result[len] = 0; cout << result << endl; } | cs |
'Algorithm' 카테고리의 다른 글
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 10999번:구간 합 구하기 2 답 (0) | 2017.03.27 |
---|---|
(C++) - 백준(BOJ) 2669 : 직사각형 네개의 합집합의 면적 구하기 답 (0) | 2017.03.27 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2812번:크게 만들기(스택) 답 (5) | 2017.03.26 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2331번:반복수열 답 (0) | 2017.03.26 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 1707번:이분 그래프(DFS) 답 (0) | 2017.03.26 |