打卡信奥刷题(2975)用C++实现信奥题 P6015 [CSGRound3] 游戏
P6015 [CSGRound3] 游戏题目背景小 Y 和小 Z 是一对好朋友他们在玩一个游戏。游戏只有一个回合。题目描述有一个牌堆一共有nnn张牌第iii张牌上有一个数aia_iai其中第一张牌是堆顶。小 Z 先取牌他可以从堆顶开始取连续若干张牌可以取000张取完的牌拿在手上也就是不在牌堆里了。然后小 Y 取牌同样她也可以从堆顶开始取连续若干张牌可以取000张。如果一个人手上的牌的数字和大于XXX那么他的分数就是000否则分数就是数字和。分数高的人获胜如果一样高则无人获胜。小 Z 为了获胜使用了透视挂即他知道牌堆里每张牌上写的数。现在问你对于满足1≤X≤K1 \leq X \leq K1≤X≤K的所有整数XXX哪些可以使得小 Z 有必胜策略即小 Z 取完后不管小 Y 怎么取都一定会输。输入格式第一行一个整数nnn表示牌堆里有几张牌。第二行nnn个整数a1…na_{1\dots n}a1…n表示每张牌上写的数。第三行一个正整数KKK含义见题目描述。输出格式第一行一个整数表示满足要求的XXX的个数。第二行从小到大依次输出满足要求的XXX用空格隔开。输入输出样例 #1输入 #15 1 4 3 2 2 5输出 #13 1 2 3说明/提示【样例解释】X1,2,3X1,2,3X1,2,3时小 Z 取一张牌小 Y 不管怎么取都是零分。X4X4X4时小 Z 如果取111张那么小 Y 取111张小 Y 就赢了否则小 Z 只能是零分。X5X5X5时小 Z 如果取111张那么小 Y 取111张小 Y 就赢了小 Z 如果取了222张小 Y 也取222张平局否则小 Z 只能是零分。【数据范围】本题采用捆绑测试。Subtask 13 pointsn1n 1n1。Subtask 214 pointsK1K 1K1。Subtask 320 pointsn,K≤100n,K \le 100n,K≤100。Subtask 433 pointsn,K≤3333n , K \le 3333n,K≤3333。Subtask 530 points无特殊限制。对于100%100\%100%的数据1≤n,K≤1061\leq n,K \leq 10^61≤n,K≤1061≤ai≤K1\leq a_i \leq K1≤ai≤K。C实现#includeiostreamusingnamespacestd;longlonga[1000005],res[1000005];intmain(){ios::sync_with_stdio(false);intn,k,ans0;cinn;for(inti1;in;i){cina[i];a[i]a[i-1];}cink;for(inti1;in;i){if(a[i]k)break;intplower_bound(a1,an1,2*a[i])-a;if(pn1||a[p]-a[i]k){res[a[i]];res[k1]--;break;}res[a[i]];res[a[p]-a[i]]--;}for(inti1;ik;i){res[i]res[i-1];if(res[i])ans;}coutansendl;for(inti1;ik;i)if(res[i])couti ;return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425929.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!