题目描述

赛利有12枚银币。其中有11枚真币和1枚假币。假币看起来和真币没有区别,但是重量不同。但赛利不知道假币比真币轻还是重。于是他向朋友借了一架天平。朋友希望赛利称三次就能找出假币并且确定假币是轻是重。例如:如果赛利用天平称两枚硬币,发现天平平衡,说明两枚都是真的。如果赛利用一枚真币与另一枚银币比较,发现它比真币轻或重,说明它是假币。经过精心安排每次的称量,赛利保证在称三次后确定假币。

输入

第一行有一个数字n,表示有n组测试用例。对于每组测试用例: 输入有三行,每行表示一次称量的结果。赛利事先将银币标号为A-L。每次称量的结果用三个以空格隔开的字符串表示:天平左边放置的硬币 天平右边放置的硬币 平衡状态。其中平衡状态用``up'', ``down'', 或 ``even''表示, 分别为右端高、右端低和平衡。天平左右的硬币数总是相等的。

输出

输出哪一个标号的银币是假币,并说明它比真币轻还是重(heavy or light)。

样例输入

1
ABCD EFGH even
ABCI EFJK up
ABIJ EFGH even 

样例输出

K is the counterfeit coin and it is light.
#include<iostream>
#include<string>
#include<set>
using namespace std;
int main()
{int n;cin>>n;while(n--){string s1,s2,s3;string s4,s5;int a[12]={0},i,j,k;for(j=0;j<3;j++){cin>>s1>>s2>>s3;if(s3=="even"){for(i=0;i<s1.size();i++)a[s1[i]-'A']=1;for(i=0;i<s2.size();i++)a[s2[i]-'A']=1;}else{s4=s1+s2;s5=s3;}}for(k=0;k<12;k++){if(a[k]==0){break;}}if(k<=12)if(s5=="up" && k>=4)printf("%c is the counterfeit coin and it is light.\n",k+'A');else if(s5=="up" && k<4)printf("%c is the counterfeit coin and it is heavy.\n",k+'A');else if(s5=="down" && k<4)printf("%c is the counterfeit coin and it is light.\n",k+'A');else if(s5=="down" && k>=4)printf("%c is the counterfeit coin and it is heavy.\n",k+'A');}
}

C/C++ 假币问题相关推荐

  1. 百练OJ:1013:Counterfeit Dollar(假币)

    题目描述 Sally Jones has a dozen Voyageur silver dollars. However, only eleven of the coins are true sil ...

  2. 有趣的天平秤假币问题

    问题描述: 有12枚硬币,其中有一枚是假币,但是不知道是重还是轻.现给定一架没有砝码的天枰,问至少需要多少次称量才能找到这枚硬币?如何证明给出的方案是最少次数? 思路分析: 我们首先想到的可能是将12 ...

  3. 减治法解决八枚硬币问题/假币问题(JAVA)----二分,三分,不知轻重的情况

    八枚硬币问题 在八枚外观相同的硬币中,有一枚是假币,并且已知假币与真币的重量不同,但不知道假币与真币相比较轻还是较重.可以通过一架天平来任意比较两组硬币,设计一个高效的算法来检测出这枚假币. 我们先假 ...

  4. 【算法分析与设计】寻找假币问题

    问题描述:给出27枚硬币,它们的各种外观完全相同,但有一枚硬币稍重一点,是假币,我们只有一杆秤,试找到一种便捷的方法找出假币. 简单直接的思路是:直接从头到尾扫描遍历一趟,找出最大的即可.算法复杂度是 ...

  5. Bailian2692 假币问题【暴力】

    2692:假币问题 描述 赛利有12枚银币.其中有11枚真币和1枚假币.假币看起来和真币没有区别,但是重量不同.但赛利不知道假币比真币轻还是重.于是他向朋友借了一架天平.朋友希望赛利称三次就能找出假币 ...

  6. 称重问题 —— 哪个是假币?

    1. 假币堆问题 有 10 堆 10 枚外观完全一致的硬币,其中有一堆全部都是假币,其他各堆中的硬币都是真币.所有的真币重量都是 10 g,假币或者比它重一克,或者轻一克,也即要么 11g,要么 9 ...

  7. OpenJ_Bailian - 2692 假币问题

    我是传送门 赛利有12枚银币.其中有11枚真币和1枚假币.假币看起来和真币没有区别,但是重量不同.但赛利不知道假币比真币轻还是重.于是他向朋友借了一架天平.朋友希望赛利称三次就能找出假币并且确定假币是 ...

  8. bailian.openjudge 2692:假币问题

    http://bailian.openjudge.cn/practice/2692 描述 赛利有12枚银币.其中有11枚真币和1枚假币.假币看起来和真币没有区别,但是重量不同.但赛利不知道假币比真币轻 ...

  9. (2013.05.05)N枚硬币找1枚假币

    N枚硬币找1枚假币 ――Neicole (2013.05.05) 0. 问题描述 共有N枚硬币,一个天平,在这N枚硬币中有一枚假币,设法找出该枚假币. 1. 原理示例(减治法) 概要: 如上图所示,假 ...

  10. 完美立方生理周期假币熄灯阶乘汉诺塔N皇后

    问题一:完美立方数 例题1:完美立方 形如a3= b3 + c3 + d3的等式被称为完美立方等式.例如 123= 63 + 83 + 103 编写一个程序,对任给的正整数N (N≤100),寻找所有 ...

最新文章

  1. mysql客户端指令_mysql command line client(mysql命令行客户端)
  2. 万能头文件#include<bits/stdc++.h>更新GCC10.2.0版本
  3. HDU 2079 选课时间(题目已修改,注意读题) 母函数 || 多重背包
  4. Apache httpd服务
  5. javascript+HTMl5游戏下载,开发一个都能月薪上万!舅服你
  6. uWSGI 和 nginx 的区别?
  7. 证券市场中银行的分类和作用
  8. css之文本溢出处理 | 背景图片处理
  9. C语言实现树,你一定看得懂
  10. 9-18 学习如何使用Python包的管理
  11. stm32f10x单片机进阶--spi使用
  12. 河南科技学院去年对口计算机分数线,河南科技学院录取分数线2021是多少分(附历年录取分数线)...
  13. c++ 中 try catch throw异常
  14. astgo-官方功能更新日志
  15. Diablo 大菠萝
  16. 100兆的网速在电脑上怎样测试软件,怎么测网速多少兆,360测网速
  17. 向日葵远程控制连接服务器黑屏原因
  18. 如何下载风云卫星数据?
  19. Pycharm this applicatation failed to start because it could not find or laod the qt plaform plugin
  20. 2023年深圳技能大赛——大鹏新区潮式风味菜烹饪职业技能竞赛

热门文章

  1. 矛与盾的较量(1)——花指令
  2. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
  3. 关于相干信号的阵列处理
  4. 杰理AC692X 软开关机的实现
  5. UIFont字体大全
  6. 一汽轿车拟增资摩拜出行;甘薇出售资产代夫偿债;小米越南店正式开业丨价值早报
  7. 支持html邮件,HTML邮件兼容问题与解决方案
  8. 国产数据库岁末大盘点
  9. tif构建金字塔失败arcgis_arcgis构建金字塔
  10. ​特斯拉、Space X、Boring,一切都是为了“火星人”马斯克的回家梦?