기술 블로그

17505번 링고와 순열 본문

알고리즘 문제/BOJ

17505번 링고와 순열

parkit 2019. 9. 30. 15:48
728x90
반응형

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




해당 인덱스에 대한 값이


뒤에 있는 값보다 큰 것의 개수를 활용한다.







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
29
30
31
32
33
34
35
36
37
38
39
40
#include <bits/stdc++.h>
 
using namespace std;
 
vector<int> v;
long long N, K, Size, max_index;
 
int main(void)
{
    cin.tie(0);
 
    cin >> N >> K;
    Size = N; 
    max_index = N - 1;
    for (int i = 1; i <= N; i++) v.push_back(i);
 
    if ((N * (N - 1)) / 2 == K) for (int i = (int)N; i >= 1; i--printf("%d ", i);
    else if (K == 0for (int i = 1; i <= (int)N; i++printf("%d ", i);
    else
    {
        while (true)
        {
            if (Size <= K)
            {
                printf("%d ", v[max_index--]);
                K = K - (--Size);
            }
            else
            {
                v.insert(v.begin() + Size - K - 1, v[max_index]);
                for (int i = 0; i <= max_index; i++printf("%d ", v[i]);
                break;
            }
        }
    }
 
    printf("\n");
 
    return 0;
}
cs



























728x90
반응형

'알고리즘 문제 > BOJ' 카테고리의 다른 글

3190번 뱀  (0) 2019.10.10
2529번 부등호  (0) 2019.10.01
17412번 도시 왕복하기 1  (0) 2019.09.29
1092번 배  (0) 2019.09.28
2887번 행성 터널  (0) 2019.09.28