POJ1013Counterfeit Dollar

这个题主要是判断硬币真假,可能轻可能重,称三次,要输出哪枚是假币,还要输出是重的还是轻的,所以最主要的是标记变量

 #include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
using namespace std ; int main()
{
int n ;
while(cin>>n )
{
int a['L'+] ;
for(int k = ; k <= n ; k++)
{
memset(a,,sizeof(a)) ; //没被标记
char ch[],sh[] ,ju[];
for(int j = ; j <= ; j++)
{
cin>>ch>>sh>>ju;
if(strcmp(ju,"even")==)
{
for(int i = ; i < strlen(ch) ; i++)
{
a[ch[i]] = ;//绝对真币为-1
a[sh[i]] = ;
}
}
else if(strcmp(ju,"up") == )
{
for(int i = ; i < strlen(ch) ; i++)
{
if(a[ch[i]] != )
a[ch[i]]++;//
if(a[sh[i]] != )
a[sh[i]]-- ;
}
}
else if(strcmp(ju,"down") == )
{
for(int i = ; i < strlen(ch) ; i++)
{
if(a[ch[i]] != )
a[ch[i]] --;
if(a[sh[i]] != )
a[sh[i]]++ ;
}
}
}
int max = ;
char count ;
for(int j = 'A' ; j <= 'L' ; j++)
{
if(a[j] == )
continue ;
if( fabs(a[j]) >= max)
{
max = fabs(a[j]) ;
count = j ;
}
}
cout<<count<< " is the counterfeit coin and it is ";
if(a[count] > )
cout<<"heavy."<<endl ;
else
cout<< "light."<<endl ;
}
}
return ;
}
上一篇:Codeforces Round #320 (Div. 2) D. "Or" Game 数学


下一篇:MySQL 三 二进制安装