AT_pakencamp_2019_day4_g 三つの条件
Description
[problemUrl]: https://atcoder.jp/contests/pakencamp-2019-day4/tasks/pakencamp_2019_day4_g
僕は,寿司が好きです.
ところで,整数 $ X $ は $ n $ 桁の $ a $ 進数です.最も上の桁が $ 0 $ となることもあり得ます.
また,$ F(X) $ は $ X $ の $ a $ 進数表記での桁和を $ 10 $ 進数で表したものとします.例えば,$ a\ =\ 7,\ X\ =\ 562 $ の場合,$ F(X)\ =\ 13 $ です.
さて,次の $ 3 $ つの条件を同時に満たすような $ X $ として考えられる整数を,小さい順から $ K $ 個出力してください.
- $ F(X)\ =\ m $.
- $ X'\ mod\ p\ =\ t $.(ただし,$ X' $ は $ X $ を $ 10 $ 進数に直した整数)
- $ s_i\ = $`0` であるような全ての整数 $ i $ $ (1\ \leq\ i\ \leq\ n) $ について,整数 $ X $ の $ a^{n-i} $ の位は $ 0 $ である.
- 例えば,$ n\ =\ 7 $,$ a\ =\ 10 $,$ s\ = $`1110110` の場合,$ X $ の $ 1000 $ の位と $ 1 $ の位は $ 0 $ でなければならない.
ただし,そのような整数が $ K $ 個未満しか存在しない場合,条件を満たす整数を小さい順にすべて出力した後,最後に `-1` と出力してください.
出力形式について,詳しくは「出力」の項をご覧ください.
Input Format
入力は以下の形式で標準入力から与えられます.
> $ n $ $ a $ $ m $ $ p $ $ t $ $ K $ $ s_1 $$ s_2 $$ s_3 $$ s_4 $...$ s_n $
Output Format
条件を満たす整数が $ K $ 個以上ある場合は,以下の形式で出力してください.
> (小さい方から $ 1 $ 番目の整数の情報) (小さい方から $ 2 $ 番目の整数の情報) (小さい方から $ 3 $ 番目の整数の情報) : (小さい方から $ K $ 番目の整数の情報)
また,条件を満たす整数が $ K $ 個に満たない場合は,以下の形式で出力してください.(ここでは,条件を満たす整数の個数を $ K' $ としています.)
> (小さい方から $ 1 $ 番目の整数の情報) (小さい方から $ 2 $ 番目の整数の情報) (小さい方から $ 3 $ 番目の整数の情報) : (小さい方から $ K' $ 番目の整数の情報) -1
ただし,整数の情報は,出力するべき整数が $ g_{n-1}a^{n-1}+g_{n-2}a^{n-2}+...+g_0a^0 $ $ (0\ \leq\ g_i\ \leq\ a-1) $ で表されるとき,以下の形式で一行に出力して下さい.
> $ g_{n-1} $ $ g_{n-2} $ $ g_{n-3} $ ... $ g_{0} $
Explanation/Hint
### 制約
- $ 1\ \leq\ n\ \leq\ 100 $.
- $ 2\ \leq\ a\ \leq\ 1\ 000\ 000 $.
- $ 0\ \leq\ m\ \leq\ 600 $.
- $ 2\ \leq\ p\ \leq\ 600 $.
- $ 0\ \leq\ t\ . $
- $ 1\ \leq\ K\ \leq\ 2\ 000 $.
- $ s_i $ は `0` または `1`.
- $ n,\ a,\ m,\ p,\ t,\ K $ は $ 10 $ 進数で表記された整数である.
### 部分点
この問題はいくつかの小課題に分けられ,その小課題のすべてのテストケースに正解した場合に「この小課題に正解した」とみなされます.
提出したソースコードの得点は,正解した小課題の点数の合計となります.
1. (7 点) $ m\ =\ 1 $.
2. (8 点) $ n\ \leq\ 6 $,$ a\ \leq\ 10 $.
3. (24 点) $ n\ \leq\ 32 $,$ a\ =\ 2 $.
4. (29 点) $ n\ \leq\ 50 $,$ a\ \leq\ 10 $,$ m\ \leq\ 50 $,$ p\ \leq\ 50 $.
5. (23 点) $ a\ \geq\ m $.
6. (9 点) 追加の制約はない.
### Sample Explanation 1
条件を満たす整数は,$ 10,\ 100 $ しかありません. $ 10 $ は $ 2 $ 桁の整数ですが,最も上の桁が $ 0 $ となってもよいので,$ 010 $ と見なせば条件を満たします. なお,この入力例は小課題 $ 1 $ の制約を満たします.
### Sample Explanation 2
この入力例において,条件を満たす整数は $ 23 $ 個しか存在しません. $ K=25 $ 個より少ないので,最後の行に `-1` を出力すると正解になります.
### Sample Explanation 4
条件を満たす整数が $ 0 $ 通りの場合もあります.