欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1681B.Card Trick
Card Trick
题目描述
Monocarp 刚学会了一个新的纸牌戏法,迫不及待地想向你展示。他向你展示了一副共有 张牌的完整牌堆。你看到从最上面到最下面的牌的点数分别是 ,并且所有点数都不相同。
接着,他让你对牌堆洗牌 次。第 次洗牌时,你需要将最上面的 张牌拿出,放到剩下的 张牌的下面,且不改变顺序。
然后,Monocarp 用魔法告诉你牌堆最上面的那张牌的点数。然而,你并不相信这个魔法。你告诉他,其实你自己也能知道最上面的那张牌。你能在 Monocarp 展示之前,先说出洗牌 次后最上面那张牌的点数吗?
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例的第一行包含一个整数 (),表示牌堆中的牌数。
第二行包含 个两两不同的整数 (),表示每张牌的点数。
第三行包含一个整数 (),表示洗牌的次数。
第四行包含 个整数 (),表示第 次洗牌时拿出的牌数。
所有测试用例中 的总和不超过 , 的总和也不超过 。
输出格式
对于每个测试用例,输出一个整数,表示洗牌 次后,牌堆最上面那张牌的点数。
说明/提示
在第一个测试用例中,每次洗牌实际上交换了两张牌。经过三次交换后,牌堆变为 。
在第二个测试用例中,第二次洗牌抵消了第一次洗牌的效果。第一次将最上面的三张牌放到最后一张牌的下面,第二次又把那张牌放回到剩下三张牌的下面。因此,牌堆保持不变,最上面那张牌的点数为 。
由 ChatGPT 4.1 翻译
样例
3
2
1 2
3
1 1 1
4
3 1 4 2
2
3 1
5
2 1 5 4 3
5
3 2 1 2 1
2
3
3
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |