Taene's

[분할정복] 백준-치킨 TOP N C++ 11582번 본문

알고리즘 문제풀이/분할정복

[분할정복] 백준-치킨 TOP N C++ 11582번

taene_ 2025. 2. 6. 21:26

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

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

int N;
vector<int> chicken(N);
int k;

void sortingChicken(int num, vector<int> &chicken)
{
	if (num == k)
	{
		for (int i = 0; i < chicken.size(); i++)
			cout << chicken[i] << ' ';
		return;
	}

	num /= 2;
	int t = N / num;
	for (int i = 0; i < chicken.size(); i += t)
	{
		sort(chicken.begin() + i, chicken.begin() + i + t);
	}
	sortingChicken(num, chicken);
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	cin >> N;
	for (int i = 0; i < N; i++)
	{
		int temp;
		cin >> temp;
		chicken.push_back(temp);
	}
	cin >> k;

	sortingChicken(N, chicken);

	return 0;
}