1013.cpp
来自「非常好的C++学习源码,里面包括各种算法的实现,二叉的的前中后序遍历等」· C++ 代码 · 共 75 行
CPP
75 行
#include<iostream>
#include<cstring>
using namespace std;
char l[3][7],r[3][7],re[3][7],a;
bool inLeft(int i, char x)
{
return strchr(l[i],x);
}
bool inRight(int i, char x)
{
return strchr(r[i],x);
}
bool light(char x)
{
int i;
for(i=0; i<3; i++)
{
switch( re[i][0] )
{
case 'u': if(!inRight(i,x)) return false;
break;
case 'e': if(inRight(i,x)||inLeft(i,x)) return false;
break;
case 'd': if(!inLeft(i,x)) return false;
break;
}
}
return true;
}
bool heavy(char x)
{
int i;
for(i=0; i<3; i++)
{
switch( re[i][0] )
{
case 'u': if(!inLeft(i,x) ) return false;
break;
case 'e': if(inRight(i,x)||inLeft(i,x)) return false;
break;
case 'd': if(!inRight(i,x)) return false;
break;
}
}
return true;
}
int main()
{
int k,j,n;
cin>>k;
for(j=1;j<=k;j++)
{
for (n=0;n<3;n++)
cin>>l[n]>>r[n]>>re[n];
for (a='A';a<='L';a++)
{
if(light(a))
{
cout<<a<<" is the counterfeit coin and it is light."<<endl;
break;
}
else if(heavy(a))
{
cout<<a<<" is the counterfeit coin and it is heavy."<<endl;
break;
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?