반응형

 

 

<코드>

#include<iostream>
#include<algorithm>
#include<deque>
using namespace std;

int N, K;
deque<int> dq;

int main(void)
{
	ios_base::sync_with_stdio(0);
	cin.tie();

	cin >> N >> K;

	for (int i = 1; i <= N; i++)
		dq.push_back(i);

	cout << "<";

	int index = K - 1;

	for (int i = 0; i < N; i++)
	{
		int x = dq.at(index);

		if(dq.size() == 1) cout << x ;
		else cout << x << ", ";
		dq.erase(dq.begin()+index);
		index += K - 1;

		if (dq.size() == 0) index = 0;
		else if (index >= dq.size())
			index %= dq.size();
	}

	cout << ">";
}

 

 

 

www.acmicpc.net/problem/1158

 

1158번: 요세푸스 문제

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)

www.acmicpc.net

 

반응형

+ Recent posts