Notice
Recent Posts
Link
정화 코딩
[C++] 수열의 합 (백준 1024번) 본문
https://www.acmicpc.net/problem/1024
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, l;
cin >> n >> l;
for (int k = l; k <= 100; k++) {
if ((2 * n) % k != 0) continue;
int tmp = (2 * n / k) - k + 1;
if (tmp >= 0 && tmp % 2 == 0) {
int a = tmp / 2;
for (int i = 0; i < k; i++) cout << a + i << ' ';
cout << '\n';
return 0;
}
}
cout << "-1\n";
}
길이가 100 이하인 수열에서만 찾으면 되므로 가능한 모든 수열의 길이에 대해서 연속 수열을 찾아보면 된다.
식을 정리하면 다음과 같다.
주의할 점은, 음이 아닌 정수 리스트여야 하므로 tmp >= 0을 체크해야주어야 한다는 점이다. (AC)
'PS' 카테고리의 다른 글
[C++] 콘센트 (백준 7774번) (0) | 2025.03.14 |
---|---|
[C++] 최소비용 구하기 2 (백준 11779번) (0) | 2025.03.12 |
[C++] 가장 긴 바이토닉 부분 수열 (백준 11054번) (0) | 2025.03.09 |
[C++] GLCCDM (백준 32649번) (0) | 2025.03.08 |
[C++] 복권 (백준 1359번) (0) | 2025.03.08 |
Comments