TouchStone
  Please Login
ログイン 登録
距离明年CSP第一轮: ??天 距离CSP第二轮: ??天 距离NOIP还有: ??天
 ホームページ  問題セット  試験一覧  提出状況  掲示板  統計情報
  • ホーム
  • 問題セット
  • P4061
  • 問題
  • P4061spark搭塔
    制限 : 時間制限 : - MS   メモリ制限 : 165536 KB
    審判説明 : 1s
    問題説明

    Spark用积木搭了n座塔,第i座塔的高度为ai.
    他发明了一种有趣增高操作:每一次他都会从1到n,在第i(i<n)座塔的上面再搭上一个和第i+1座塔一样高的塔,第n座塔没法增高,只好扔掉了。这样做了一次之后Spark就只剩下了n-1座塔(n的值变为n-1)。于是他很有耐心的重复了许多次,直到最后只剩下了一座塔,设它的高度为H。
    Spark很迷信,他有一个幸运数字m,于是他把H%m当成最终的美观度。

    他惊奇的发现,最开始n座塔中有一些塔的高度不论是多少,最终的美观度都不会变!他想知道哪些塔的高度不会影响美观度。

    入力形式

    一行两个整数n,m ( 1<=n<=100 000, 2<=m<=10^9).

    对30%的数据 n<=30,m<=100

    出力形式

    第一行一个整数N,表示不影响美观度的塔的个数。

    第二行N个整数,第i个数 bi 表示第 bi  座塔的高度不影响美观度,请从小到大输出 bi。

    サンプル入力 1

    3 2

    サンプル出力 1


    2

    サンプル入力 2

    7 6

    サンプル出力 2

    2
    2 6

    ヒント

    样例解释:
    第一次操作后变成 a1 + a2, a2 + a3.

    第二次操作后变成 a1 + 2a2 + a3.

    又因为m=2,最终的美观度显然与 a2。没有关系.


    ソース  spark改编自Uva1635