打卡信奥刷题(334)用Scratch图形化工具信奥B3901[普及组/提高组] [NICA #3] 星空(Easy Version)

[NICA #3] 星空(Easy Version)

题目背景

Easy Version 和 Hard Version 差别在于数据范围。

题目描述

小 R 有一个长度为 n n n 的序列 a a a,保证序列中的每个数都是 2 2 2 的整数次幂。

小 M 有一个数 x x x,她希望重新排列序列 a a a,使得不存在一个 i ∈ [ 1 , n ) i\in[1,n) i[1,n) 满足 a i + a i + 1 > x a_i+a_{i+1}>x ai+ai+1>x。重排的方式为:选择一个 1 ∼ n 1\sim n 1n 的排列 p p p,然后令新序列 a ′ a' a 满足 a i ′ = a p i a'_i=a_{p_i} ai=api a ′ a' a 即为重排后的序列。

现在你想要知道有多少种重排的方式能满足小 M 的要求。两种重排方式不同当且仅当选择的排列 p p p 不同。答案对 1 0 9 + 7 10^9+7 109+7 取模。

输入格式

第一行输入两个正整数 n , x n,x n,x,表示序列长度和小 M 想的那个数;

第二行输入 n n n 个正整数 a i a_i ai,表示序列;

输出格式

输出一行表示答案。答案对 1 0 9 + 7 10^9+7 109+7 取模。

样例 #1

样例输入 #1

4 20
2 4 8 16

样例输出 #1

12

提示

数据保证, 2 ≤ n ≤ 61 2 \leq n \leq 61 2n61 1 ≤ a i ≤ 2 60 1 \leq a_i \leq 2^{60} 1ai260 1 ≤ x < 2 63 1\le x< 2^{63} 1x<263每一个 a i a_i ai 都不重复

Scratch实现

在这里插入图片描述

后续

接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值