博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Poj百练 2692:假币问题 (分类:模拟)
阅读量:1888 次
发布时间:2019-04-26

本文共 1627 字,大约阅读时间需要 5 分钟。

//poj2692假币问题#include 
#include
#include
#include
using namespace std;int n;int status[12]; //每个硬币的状态char lef[3][7], righ[3][7], res[3][7];bool balance(){ for(int i = 0; i < 3; i++){ int rightW = 0, leftW = 0; for(int j = 0; righ[j] != 0 && j < 6; j++) rightW += status[righ[i][j]-'A']; for(int j = 0; left[j] != 0 && j < 6; j++) leftW += status[lef[i][j]-'A']; if(res[i][0] == 'e' && rightW != leftW) return false; if(res[i][0] == 'u' && rightW >= leftW) return false; if(res[i][0] == 'd' && rightW <= leftW) return false; } return true;}int main(){//0表示未遍历,1表示为真,-1表示可能为假且轻,1表示可能为假且重 scanf("%d",&n); char ans[n+2][43]; for(int index = 0; index < n; index++){ memset(status, 0, sizeof(status)); memset(lef, 0, sizeof(lef)); memset(righ, 0, sizeof(righ)); for(int i = 0; i < 3; i++) scanf("%s %s %s", lef[i], righ[i], res[i]); for(int i = 0; i < 12; i++){ //分别假设每个硬币为轻,重,真,依次枚举,如果满足条件则跳出 status[i] = -1; if(balance()){ strcpy(ans[index], "0 is the counterfeit coin and it is light. "); ans[index][0] = 'A'+i; break; } status[i] = 1; if(balance()){ strcpy(ans[index], "0 is the counterfeit coin and it is heavy. "); ans[index][0] = 'A'+i; break; } status[i] = 0; } } for(int i = 0; i < n; i++) printf("%s\n",ans[i]); return 0;}

 

转载地址:http://lezdf.baihongyu.com/

你可能感兴趣的文章
基于SSM框架的BS微博系统的设计与实现
查看>>
超市订单管理系统
查看>>
基于ssm的民宿网站
查看>>
基于JavaWeb的物流管理系统的设计与实现
查看>>
基于Java的飞机大战游戏的设计与实现论文
查看>>
基于java实现的超级马里奥游戏
查看>>
linux不删除文件:替换rm命令
查看>>
linux: shell脚本日常功夫
查看>>
scala集合类型,函数
查看>>
yarn: 资源调度机制
查看>>
spark的shell脚本分析
查看>>
推荐算法:基于物品的协同过滤算法
查看>>
docker系列3:docker搭建CDH集群[单机单节点]
查看>>
ubuntu 16:使用系统自带的中文输入法
查看>>
docker系列6 :k8s集群[ 解压安装 ]
查看>>
maven- idea: 打包可执行jar
查看>>
docker系列7: docker搭建mysql
查看>>
windows server 2012设置远程连接断开后自动注销
查看>>
python基础:list,map,open()文件读写
查看>>
Go面向对象-接口
查看>>