1052. Candy Sharing Game

本文提供了一个TAG模拟题目的解决方案,通过C语言实现了一个程序来处理输入数据,判断是否所有元素相等,如果不相等,则进行特定操作直至所有元素相等,并输出所需的操作次数及最终元素值。

TAG 模拟

没说N多大。。。水题就直接贴代码了。。

/* source code of submission 427279, Zhongshan University Online Judge System */ #include <stdio.h> int n,ans,last; bool equal; int candy[3000]; int main(int argc, char *argv[]) { while ( scanf("%d", &n) && n!=0 ) { for (int i=0; i<n; ++i) { scanf("%d", &candy[i]); } ans=0; equal=true; for (int i=1; i<n; ++i) { if ( candy[i]!=candy[0] ) { equal=false; break; } } if ( equal ) { printf("%d %d/n", 0, candy[0]); } else { do { ++ans; for (int i=0; i<n; ++i) { candy[i]/=2; } last=candy[n-1]; equal=true; for (int i=n-2; i>=0; --i) { candy[i+1]+=candy[i]; if ( candy[i+1]%2==1 ) { ++candy[i+1]; } if ( i<n-2 && candy[i+1]!=candy[i+2] ) { equal=false; } } candy[0]+=last; if ( candy[0]%2==1 ) { ++candy[0]; } equal= equal && candy[0]==candy[1]; if ( equal ) { break; } } while ( true ); printf("%d %d/n",ans, candy[0]); } } return 0; }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值