https://www.acmicpc.net/problem/20921
๋ฌธ์
์ ์๋ ์ต๊ณ ์ ์ธ์ธ ํ์ฃผ๋ ์ค๋๋ ์ธ๊ธฐ๊ฐ ๋ง๋ค. ๊ทธ ์ธ๊ธฐ๋ ์ ๋ง ๋๋จํด์ ๋๋๋ฌด์ฒ์์๋ ๋งค์ผ ํ์ฃผ์ ์ด๋ฆ์ด ์์์ง๋ค.
ํ์ฃผ์๊ฒ๋ ๊ทธ ์ธ๊ธฐ์ ๋น๊ฒฐ์ด ์์๋๋ฐ, ๋ฐ๋ก ์์ ์ด ์ํ๋ ๋ ๋ช ์ ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ฌ์ด๋ก ๋ง๋ค ์ ์๋ ๊ฒ์ด๋ค!
ํ์ฃผ๊ฐ ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ฌ์ด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
- โ1 N ๋ฒ ์ฌ๋๊น์ง N ๋ช ์ ์ผ๋ ฌ๋ก ์ธ์ด๋ค. ๋ฒ ์ฌ๋๋ถํฐ
- ๋ชจ๋ ์ฌ๋์๊ฒ 1 N ๊น์ง ์์ ์ ์ ์ค ํ๋๊ฐ ์ ํ ์ชฝ์ง๋ฅผ ๋๋ ์ค๋ค. ์ชฝ์ง์ ์ ํ ์ ์๋ ์ค๋ณต๋์ง ์๋๋ค. ๋ถํฐ
- ์๋ก ๋ค๋ฅธ ๋ ์ฌ๋์ ๊ณจ๋์ ๋, ์ผ์ชฝ์ ์๋ ์ฌ๋์ด ์ค๋ฅธ์ชฝ์ ์๋ ์ฌ๋๋ณด๋ค ์ชฝ์ง์ ์ ํ ์ ์๊ฐ ๋ ํฌ๋ค๋ฉด, ์ด ๋ ์ฌ๋์ ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ฌ์ด๊ฐ ๋๋ค.
- ๋๋๊ฒ๋ ํ ์ฌ๋์ด ์ฌ๋ฌ ์ฌ๋๊ณผ ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ฌ์ด์ผ ์๋ ์๋ค.
21์ธ๊ธฐ์ ํํผ๋ ํ์ฃผ๋ ์ธ๊ณผ ์ฐ์ ์๋ด์ด ๋๋ฌด ๋ง์ด ์์ ํ๋ค๋ค. ๊ทธ๋์ ํ์ฃผ๋ ํ ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ฌ์ด๋ฅผ ๋ง๋ค๋ ค ํ๋ค. ํ์ง๋ง ๋๋ฌด ๋ง์ด ๋ง๋ค๋ฉด ๋ฏธํ์์์ ์ ํด๋๊ณ , ๋๋ฌด ์ ๊ฒ ๋ง๋ค๋ฉด ์๋ก๋ค์ด ๋ง์์ง๊ธฐ ๋๋ฌธ์, ์ ํํ K ๊ฐ์ ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ฌ์ด๋ฅผ ๋ง๋ค๋ ค ํ๋ค.
ํ์ฃผ๋ ์ ๋ฉ๋ฆฌ์ ๋ฌ๋ ค์ค๋ N ๋ช ์ ์น๊ตฌ๋ค์ ๋ณด์๋ค. ์ฌ๋นจ๋ฆฌ K ๊ฐ์ ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ฌ์ด๋ฅผ ๋ง๋ค์ด ์ฃผ์ง ์์ผ๋ฉด, ์ ๋ค์ ํ์ฃผ์ ์ํฐํฌ์ด ๋ ์ง๋ ๋ชจ๋ฅธ๋ค!
์ ๋ ฅ
์ ์ N , K ๊ฐ ์ฃผ์ด์ง๋ค. (2≤N≤4242 , 0≤K≤N(N−1)2 )
์ถ๋ ฅ
โN v1,v2,โฏ,vN ์ ๊ณต๋ฐฑ ๋จ์๋ก ์ถ๋ ฅํ๋ค.
๊ฐ์ ์ ์โvi i ๋ฒ์งธ ์ฌ๋์ด ๋ฐ์ ์ชฝ์ง์ ์ ํ ์ ์๋ฅผ ์๋ฏธํ๊ณ , ์ ํํ K ๊ฐ์ ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ฌ์ด๊ฐ ๋ง๋ค์ด์ ธ์ผ ํ๋ค.
๋์ ํํ K ๊ฐ์ ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ฌ์ด๋ฅผ ๋ง๋ค ๋ฐฉ๋ฒ์ ํญ์ ์กด์ฌํ๊ณ , ๋ง์ฝ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ๊ทธ์ค ํ๋๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
int n, k;
cin >> n >> k;
vector<int> v;
vector<int> replace;
for(int i=1; i<=n; i++)
v.push_back(i);
for(int i=n-1; i>0; i--) {
if(k>=i) {
k -= i;
v[i] = -1;
replace.push_back(i+1);
}
}
for(int i=0; i<replace.size(); i++)
cout << replace[i] << " ";
for(int i=0; i<n; i++)
if(v[i] != -1)
cout << v[i] << " ";
return 0;
}
/*
*/
'๐๏ธ ICPC Sinchon > Greedy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 27112๋ฒ: ์๊ฐ ์ธ ๊ทผ๋ฌด ๋ฉ์ถฐ! (0) | 2023.02.01 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 11501๋ฒ: ์ฃผ์ (0) | 2023.01.31 |
[BOJ][C++] ๋ฐฑ์ค 14659๋ฒ: ํ์กฐ์์ด์ ๋ฆฌํ๊ณ ์ดใ ใ (0) | 2023.01.31 |
[BOJ G4][C++] ๋ฐฑ์ค 1339๋ฒ: ๋จ์ด ์ํ (0) | 2022.10.11 |
[BOJ G5][C++] ๋ฐฑ์ค 11000๋ฒ: ๊ฐ์์ค ๋ฐฐ์ (์๊ฐ์ด๊ณผ) (0) | 2022.10.11 |