2015년 9월 28일 월요일

B. Luxurious Houses

B. Luxurious Houses

Implementation

출처: Codeforces B. Luxurious Houses

SOL)
 오른쪽 배열에서 최대값을 계속 알고 있으면 된다.
굳이 정렬을 할 필요도 없다.


cpp to html [-] Collapse
#include <stdio.h>

int n, p, arr[100009], res[100009];

int main()
{
    //freopen("input.txt", "r", stdin);
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) scanf("%d", &arr[i]);
    for (int i = n; i >= 1; i--)
    {
        if (arr[p]<arr[i]) p = i;
        else res[i] = arr[p] - arr[i] + 1;
    }
    for (int i = 1; i <= n; i++) printf("%d ", res[i]);
    return 0;
}

댓글 없음:

댓글 쓰기