포럼
문제 COCI00384

Podnizovi

설명

You are given an array of integers of length \(N\). Let \(s_{1}\), \(s_{2}\), ..., \(s_{q}\) be the lexicographically sorted
array of all its non-empty subsequences. A subsequence of the array is an array obtained by removing
zero or more elements from the initial array. Notice that some subsequences can be equal and that it
holds \(q = 2^{N} - 1\).
An array \(A\) is lexicographically smaller than array \(B\) if \(A_{i} < B_{i}\) where \(i\) is the first position at which
the arrays differ, or if \(A\) is a strict prefix of array \(B\).
Let us define the hash of an array that consists of values \(v_{1}\), \(v_{2}\), ..., \(v_{p}\) as:
\(h\)(\(s\)) = (\(v_{1} \cdot B^{\)p - 1\(}\) + \(v_{2} \cdot B^{\)p - 2\(}\) + ... + \(v_{p - 1} \cdot B + v_{p}\)) mod \(M\)
where \(B\), \(M\) are given integers.
Calculate \(h\)(\(s_{1}\)), h(\(s_{2}\)), ..., h(\(s_{K}\)) for a given \(K\).

제약

In test cases worth 60% of total points, it will additionally hold 1 ⩽\(a_{1}\), \(a_{2}\), ..., \(a_{N}\) ⩽30.

입력 형식

The first line contains integers \(N\), \(K\), \(B\), \(M\) (1 ⩽\(N\) ⩽100 000, 1 ⩽\(K\) ⩽100 000, 1 ⩽B, M ⩽
1 000 000).
The second line contains integers \(a_{1}\), \(a_{2}\), \(a_{3}\), ..., \(a_{N}\) (1 ⩽\(a_{i}\) ⩽100 000).
In all test cases, it will hold \(K\)\(2^{N} - 1\).

출력 형식

Output \(K\) lines, the \(j^{th}\) line containing \(h\)(\(s_{j}\)).

예제 1
입력
2 3 1 5
1 2
3 4 2 3
1 3 1
5 6 23 1000
1 2 4 2 3
출력
output
output
1
3
2
1
1
0
2
1
25
25
577
274
578
설명

Clarification of the first example: It holds: s1 = [1], s2 = [1, 2], s3 = [2]. h(s1) = 1 mod 5 = 1, h(s2) =
(1 + 2) mod 5 = 3, h(s3) = 2 mod 5 = 2.
Clarification of the second example: It holds: s1 = [1], s2 = [1], s3 = [1, 1], s4 = [1, 3].
h(s1) = 1
mod 3 = 1, h(s2) = 1 mod 3 = 1, h(s3) = (1 · 2 + 1) mod 3 = 0, h(s4) = (1 · 2 + 3) mod 3 = 2.

문제 정보

생성자가 기록되지 않았습니다.

출처 COCI 2015/2016 Contest 5

평가 및 의견

Podnizovi

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Podnizovi

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8