#P17373. PM17038 IOIWeirdModel2

PM17038 IOIWeirdModel2

题目描述

在本题中,一个程序由有限个正有理数组成。设这些有理数依次为 N0/D0,N1/D1,N_0/D_0,N_1/D_1,\ldots,程序的全部内存只有一个正整数 MM

程序每一步按如下规则执行:从前往后寻找最小的下标 ii,使得 M×Ni/DiM\times N_i/D_i 是整数。如果不存在这样的 ii,程序立即终止;否则令 MM×Ni/DiM\leftarrow M\times N_i/D_i,然后继续执行下一步。注意分数的顺序非常重要。

例如程序 {1/8,9/4,3/2}\{1/8,9/4,3/2\}M=210=1024M=2^{10}=1024 开始时,MM 会依次变成 128,16,2,3128,16,2,3,随后终止。

你的任务是构造一个这样的程序。对于给定的整数 LL,本题评测器会检查所有满足 0x,yL0\le x,y\le L 的整数对。若程序开始时

M=2x3y7M=2^x\cdot 3^y\cdot 7

则它必须最终终止,并且终止时满足

M=5xyM=5^{xy}

你构造的程序还必须满足:

  • 分数条数不超过 2525
  • 对任意被检查的 (x,y)(x,y),执行步数不超过 60006000
  • 每个分子、分母都是正整数,并且不超过 23112^{31}-1
  • 程序执行过程中,MM 始终不超过 10250010^{2500}

答案不唯一,本题使用 Special Judge。

输入格式

输入仅一行,一个整数 LL

输出格式

第一行输出一个正偶数 KK,表示第二行整数的个数,要求 K50K\le 50

第二行输出 KK 个正整数:

N0 D0 N1 D1 ...

它们依次表示程序中的分数 N0/D0,N1/D1,,NK/21/DK/21N_0/D_0,N_1/D_1,\ldots,N_{K/2-1}/D_{K/2-1}

数据范围

0L200\le L\le 20

样例输入

2

样例输出

14
625 252 25 84 25 126 5 42 1 2 1 3 1 7

样例说明

上面的输出表示程序

{625/252,25/84,25/126,5/42,1/2,1/3,1/7}\{625/252,25/84,25/126,5/42,1/2,1/3,1/7\}

对于 0x,y20\le x,y\le2 的所有九种初值,它都能得到要求的最终结果。由于本题答案不唯一,你的输出不需要与样例相同。