본문 바로가기

백준

11866 요세푸스 문제 0

이거 작년에 풀려고 했었는데 못 푼 기억이 있다.

지금은 풀 수 있구만

 

 

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <bitset>

#define xx first
#define yy second
#define all(x) (x).begin(), (x).end()
#define MAXV 1000000

using namespace std;
using i64 = long long int;
using ii = pair<int, int>;
using ii64 = pair<i64, i64>;
using iii = tuple<int, int, int>;

int     main()
{
    int n, k;
    scanf("%d %d", &n, &k);

    vector<int> v(n);
    for (int i = 0; i < n; i++)
        v[i] = i + 1;

    k--;
    int count = 0;
    vector<int> ans;
    while (!v.empty())
    {
        count = (count + k) % v.size();
        ans.push_back(v[count]);
        v.erase(v.begin() + count);
    }

    printf("<");
    for (int i = 0; i < ans.size() - 1; i++)
        printf("%d, ", ans[i]);
    printf("%d>", ans[ans.size() - 1]);

    return 0;
}

'백준' 카테고리의 다른 글

2435 기상청 인턴 신현수  (0) 2020.11.02
4963 섬의 개수  (0) 2020.10.31
2799 블라인드  (0) 2020.10.29
11947 이런 반전이  (0) 2020.10.27
14719 빗물  (0) 2020.10.25