#P5780. [CTSC2011] 排列

    ID: 4748 远端评测题 3000ms 125MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>2011WC/CTSC/集训队Special JudgeO2优化

[CTSC2011] 排列

题目描述

沫沫很喜欢找规律填数字,譬如 1,4,7,(),1,4,7,( ),\cdots,相邻的数相差为 33,括号中的数应为 1010;又如 3,6,12,(),3,6,12,( ),\cdots,每个数是前一个数的两倍,括号中的数应为 2424

由于常年玩这种游戏,沫沫厌倦了等差数列与等比数列。当看到数列 1,2,,n1,2,\cdots,n 时,她想尽量小的改变其顺序使得不存在公差为 AA 或者公比为 BB 的子列。

具体地,给定整数 n,A,Bn,A,B,求一个 11nn 的排列 P=(P1,P2,,Pn)P = (P_1,P_2,\cdots,P_n),满足 i,j{1,2,,n}\forall i,j \in \{1,2,\cdots,n \},若 i<ji<jPi<PjP_i<P_j,则 PjPi+AP_j \neq P_i+APjPi×BP_j \neq P_i \times B。排列 PP 保留原有顺序的程度 SS 定义为:

$$S = \sum\limits_{1 \le i \le j \le n , P_i<P_j} (P_j-P_i) $$

请你在满足前述要求的前提下,使得 SS 的值尽量大。

输入格式

第一行包含三个正整数 n,A,Bn,A,B,意义如前所述。相邻的数之间用一个空格隔开。

输出格式

第一行包含 nn 个整数,为你求得的排列 PP,相邻的数之间用空格隔开。

4 3 2

4 2 1 3

提示

样例说明

该排列对应的 S=3S = 3,是 n=4,A=3,B=2n=4,A=3,B=2 时能取到的最大的 SS


评分方式

每个测试点单独评分。

对于每一个测试点,如果你的输出不合法,如文件格式错误、输出的解不符合要求等,该测试点得 00 分。

否则设你输出的排列对应 SS 值为 aa,我们提供的排列对应 SS 值为 bb,你在该测试点的得分如下:

  • 如果 aba \le b,得 1010 分;
  • 否则得分为:

max{[10×(exp(ab2)],1}\max \{ [10 \times ( \exp (\frac{a}{b}-2)],1 \}


数据规模

总共 1010 个测试点,数据范围满足:

测试点编号 nn AA BB
11 30\le 30 n\le n
22 60\le 60 AmodB0A\bmod B\not =0 4\ge 4
33 70\le 70 5\ge 5
44 80\le 80 6\ge 6
55 90\le 90 7\ge 7
66 n\le n =1=1
7,87,8 5\le 5 n\le n
99 =60=60 =21=21 =3=3
1010 =90=90 =18=18 =2=2

在所有输入数据中,AABB 均为不超过 nn 的正整数。