페이지

11877번: 홍수

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

#include<stdio.h>
typedef long long ll;
int n;
ll t, x;
int main() {
    scanf("%d %lld", &n, &x);
    int i, j;
    t = (ll)(n - 1)*(n - 2) / 2;
    if (x>t) {
        puts("-1");
        return 0;
    }
    for (i = n - 1; i >= 1 && t - (i - 1) > x; i--) t -= i - 1;
    for (j = i - 1; j >= 1; j--) {
        if (i - 1 - j == t - x) printf("%d ", i);
        printf("%d ", j);
    }
    if (i - 1 - j == t - x) printf("%d ", i);
    for (int j = i + 1; j <= n; j++) printf("%d ", j);
    return 0;
}

댓글 없음 :

댓글 쓰기