CFCF2206L.Onion

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

洋葱在世界各地的美食中被广泛使用。本题讨论的是几何中的“洋葱剥皮”过程。

在二维平面中,一组点是凸的,如果对于集合中的任意两点 ppqq,连接 ppqq 的线段都完全包含在该集合中。对于一组点 SS,它的凸包是包含 SS 的最小的凸集。

给定四个整数 nnaabbkk。你有一个初始包含 nn 个点的集合 SS,定义如下:

S={(x,(ax+b)modn)x=0,1,,n1}S = \{ (x, (a x + b) \bmod n) \mid x = 0, 1, \ldots, n-1 \}。

你要进行如下操作 kk 次:令 HH 为集合 SS 的凸包,然后将 SS 中所有在 HH 的边界上的点都从 SS 中移除。

注意,SS 可能会变为空集。在这种情况下,它的凸包也是空的,面积为零。

对于每一次操作,输出相应的凸包 HH 的面积的两倍。可以证明,这个结果总是整数。

输入格式

输入包含一行,四个整数 nnaabbkk,满足 1n1091 \le n \le 10^90a,b<n0 \le a, b < n1k3001 \le k \le 300

输出格式

输出 kk 行,第 ii 行为第 ii 次操作后的凸包的面积的两倍。

输入输出样例

  • 输入#1

    4 1 2 1

    输出#1

    8

说明/提示

样例输入输出 #1 说明

下图展示了 SS 中的点和第一次操作中凸包的边界。凸包的面积为 44,其两倍为 88

图 L.1:样例输入 #1 的示意图。

样例输入输出 #2 说明

下图展示了前四次操作中凸包的边界。第 44 次操作后,SS 变为空集。第 55 次操作的面积为 00

图 L.2:样例输入 #2 的示意图。

首页