| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
我觉得这题不是很水 至少我想的不全面#include <iostream>
#include <memory.h>
#include <string>
using namespace std;
char honest[15];
string heavy;
string light;
int main()
{
int rounds;
cin>>rounds;
while(rounds--)
{
heavy.clear();
light.clear();
heavy="ABCDEFGHIJKL";
light="ABCDEFGHIJKL";
memset(honest,0,sizeof(honest));
for(int i=1;i<=3;i++)
{
string left,right,re;
cin>>left>>right>>re;
if(re=="even")
{
for(int j=0;j<=left.size()-1;j++)
{
honest[left[j]-'A'+1]=true;
}
for(int j=0;j<=right.size()-1;j++)
{
honest[right[j]-'A'+1]=true;
}
}
else
{
if(re=="up")
{
//取交集
for(int i=0;i<heavy.size();i++)
{
if(left.find(heavy[i])==-1)
heavy[i]='X';
}
for(int i=0;i<light.size();i++)
{
if(right.find(light[i])==-1)
light[i]='X';
}
}
else
{
for(int i=0;i<heavy.size();i++)
{
if(right.find(heavy[i])==-1)
heavy[i]='X';
}
for(int i=0;i<light.size();i++)
{
if(left.find(light[i])==-1)
light[i]='X';
}
}
for(char a='A';a<='L';a++)
{
if(heavy.find(a)==-1&&light.find(a)==-1)
honest[a-'A'+1]=true;
else if(heavy.find(a)!=-1&&light.find(a)!=-1)
honest[a-'A'+1]=true;
}
}
}
string temp;
for(int i=1;i<=12;i++)
{
if(honest[i]==false)
{
char c=i+'A'-1;
if(light.find(c)!=-1)
temp="light";
else
temp="heavy";
cout<<c<<" is the counterfeit coin and it is "<<temp<<"."<<endl;
break;
}
}
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator