반응형
Notice
Recent Posts
Recent Comments
Link
안 쓰던 블로그
백준 1024 수열의 합 본문
반응형
합이 n이고 길이가 최소 l인 연속된 수열을 구하는 문제
합이 n인 연속된 수열을 $x+(x+1)+(x+2)...(x+L-1)$ 로 두고 x에 대한 식으로 바꾸면 위에 풀이처럼 된다
l이 100까지라고 했으니까 l~100 사이에서 조건에 맞는 x를 찾으면 끝
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
long long n;
int l, res = -1, index = 0;
cin >> n >> l;
for (int i = l; i <= 100; i++) { //100이하의 l중에 조건에 맞는 x를 찾는다
int k = i * (i - 1) / 2;
if ((n - k) % i == 0 && (n - k) / i >= 0) { //나눠 떨어지고, 길이가 맞으면 찾음
res = (n - k) / i;
index = i;
break;
}
}
if (res == -1) cout << -1;
else for (int i = 0; i < index; i++) cout << res + i << " ";
}
반응형
'알고리즘 > 알고리즘 문제 풀이' 카테고리의 다른 글
신년맞이 boj - day1 (0) | 2021.01.01 |
---|---|
6603 로또 (0) | 2020.11.26 |
백준 1005 ACM Craft (4) | 2020.10.17 |
백준 2252 줄 세우기 - 위상정렬 (0) | 2020.10.17 |
백준 11282 한글, 11283 한글 2 (2) | 2020.10.16 |
Comments