dh-winternagi 님의 블로그
(31836) 피보나치 기념품 본문
https://www.acmicpc.net/problem/31836
단계별로 풀어보기
37단계(해 구성하기) 6번째
F(x)+F(x+1)=F(x+2)이므로 N부터 내려오면서 3개씩 묶어서 나눠주면 된다.
그리고 F(1)=F(2)이므로 2개가 남으면(N%3=2) 1번과 2번도 나눠주면 된다.

#include <iostream>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin >> n;
vector<int> a, b;
for(int i=n;i>=3;i-=3){
a.push_back(i);
b.push_back(i-1);
b.push_back(i-2);
}
if(n%3==2){
a.push_back(2);
b.push_back(1);
}
cout << a.size() << "\n";
for(int elem:a) cout << elem << " ";
cout << "\n" << b.size() << "\n";
for(int elem:b) cout << elem << " ";
return 0;
}'백준 (C++) > Solve' 카테고리의 다른 글
| (22967) 구름다리 (0) | 2026.04.21 |
|---|---|
| (13018) 특이한 수열 (0) | 2026.04.21 |
| (25288) 영어 시험 (0) | 2026.04.21 |
| (25184) 동가수열 구하기 (0) | 2026.04.20 |
| (28065) SW 수열 구하기 (0) | 2026.04.20 |
