아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

배열의 값

시간 제한1초메모리 제한512 MB

요약
각 k=1부터 n까지 모든 비어 있지 않은 부분수열에 대해 큰 쪽 min(크기, k)개 원소의 합을 더한 값을 998244353으로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

유형
조합론, 정렬, 수학, 누적 합
정답자
아직 제출이 없습니다

문제

Yuta에게는 nn개의 정수로 이루어진 수열 a1,…,ana_1, \ldots, a_n과 수 kk가 있다. 이 수열의 공집합이 아닌 부분수열 SS의 값은 SS에 들어 있는 수 중 큰 것부터 min⁡(∣S∣,k)\min(|S|, k)개의 합으로 정의한다. 배열 aa의 값은 공집합이 아닌 모든 부분수열의 값의 합이다.

Yuta는 nn개의 정수를 보여 주고, 각 k∈[1,n]k \in [1, n]에 대해 배열의 값을 알고 싶어 한다.

입력

첫째 줄에는 Yuta가 가진 수열의 길이 nn이 주어진다 (1≤n≤1051 \le n \le 10^5). 둘째 줄에는 수열 a1,…,ana_1, \ldots, a_n이 주어진다 (0≤ai≤1090 \le a_i \le 10^9).

출력

정확히 nn개의 정수를 한 줄에 출력한다. ii번째 수는 k=ik = i일 때 배열의 값이어야 한다. 답이 매우 클 수 있으므로 998 244 353998\,244\,353으로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

    입력
    3
    1 1 1
    
    예상 출력
    7 11 12
    
  2. 예제 2

    입력
    5
    1 2 3 4 5
    
    예상 출력
    129 201 231 239 240