페이지

1024번: 수열의 합

https://www.acmicpc.net/problem/1024


#include<cstdio>
int n, l, x, y = 1e9;
void f(int i) {
    if (i & 1) {
        if (n / i * 2 >= l && n / i <= 50 && i / 2 + 1 >= n / i) {
            if (n / i * 2 < y) {
                x = i / 2 - n / i + 1;
                y = n / i * 2;
            }
        }
        if (i >= l&& i <= 100 && n / i >= i / 2) {
            if (i < y) {
                x = n / i - i / 2;
                y = i;
            }
        }
    }
}
int main() {
    scanf("%d%d", &n, &l);
    for (int i = 1; i*i <= n; i++) if (n%i == 0) {
        f(i);
        f(n / i);
    }
    if (y<1e9) {
        for (int i = 0; i < y; i++) printf("%d ", x + i);
    }
    else puts("-1");
    return 0;
}

댓글 없음 :

댓글 쓰기