Notice
Recent Posts
Link
정화 코딩
[C++] GLCCDM (백준 32649번) 본문
https://www.acmicpc.net/problem/32649
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int a, b, k;
cin >> a >> b >> k;
vector<int> ans;
ans.push_back(a);
ans.push_back(b);
for (int i = a + 1; i < b; i++) {
if (i % a == 0 && b % i == 0) ans.push_back(i);
}
if (ans.size() >= k) {
for (int i = 0; i < k; i++) cout << ans[i] << ' ';
cout << '\n';
} else {
cout << "-1\n";
}
}
캐어려운 정수론 문제인줄 알았는데 그냥 브루트포스 문제였다 ㅎㅎ;;
핵심 포인트는 d는 A의 배수이면서 B의 약수여야 한다는 것이다. 그런데 A와 B의 범위가 그렇게 크지 않으니 그냥 A부터 B까지의 모든 수를 탐색하면서 체크해서 ans 배열에 추가해주면 된다. (참고로, A와 B는 당연히 정답에 포함되는 수이다.) 마지막에 ans 배열의 크기가 k보다 작으면 -1을 출력하고, k보다 크거나 같으면 ans 중에 아무 수 k개를 출력해주면 된다. (AC)
친오빠 붙잡고 뻘짓한 흔적... 그래도 의미 있는 시간이었다.
식을 좀 정리해보면 다음과 같다.
그래서~~ 만약 A와 B의 범위가 큰 문제였다면 이런식으로 판별해야 하지 않을까~
'PS' 카테고리의 다른 글
[C++] 수열의 합 (백준 1024번) (0) | 2025.03.09 |
---|---|
[C++] 가장 긴 바이토닉 부분 수열 (백준 11054번) (0) | 2025.03.09 |
[C++] 복권 (백준 1359번) (0) | 2025.03.08 |
[ICPC Sinchon] 25W 알고리즘 캠프 초급 강의 9회차 과제 에디토리얼 (0) | 2025.03.07 |
[ICPC Sinchon] 25W 알고리즘 캠프 초급 강의 8회차 과제 에디토리얼 (0) | 2025.03.07 |
Comments