| ||||||||||
| 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 | |||||||||
简单暴力枚举a数组记录天平结果,map记录字母的重量(0正常, 1重, -1轻),一个一个去试那三个天平
code:
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <map>
using namespace std;
string s1, s2, s3, s4, s5, s6, s7, s8, s9;
map<char, int> m;
int a[4];
void judge(void) //0-even 1-up -1-down
{
if (s3[0] == 'e') a[1] = 0;
else if (s3[0] == 'u') a[1] = 1;
else a[1] = -1;
if (s6[0] == 'e') a[2] = 0;
else if (s6[0] == 'u') a[2] = 1;
else a[2] = -1;
if (s9[0] == 'e') a[3] = 0;
else if (s9[0] == 'u') a[3] = 1;
else a[3] = -1;
//cout << a[1] << a[2] << a[3] << endl;
}
bool ok(void)
{
int sum1 = 0, sum2 = 0;
for (int i=0; s1[i]!='\0'; ++i)
{
sum1 += m[s1[i]];
}
for (int i=0; s2[i]!='\0'; ++i)
{
sum2 += m[s2[i]];
}
//cout << sum1 << '-' << sum2 << "->" << a[1] << endl;
if (sum1 - sum2 != a[1]) return false;
sum1 = 0; sum2 = 0;
for (int i=0; s4[i]!='\0'; ++i)
sum1 += m[s4[i]];
for (int i=0; s5[i]!='\0'; ++i)
{
sum2 += m[s5[i]];
}
//cout << sum1 << '-' << sum2 << "->" << a[1] << endl;
if (sum1 - sum2 != a[2]) return false;
sum1 = 0; sum2 = 0;
for (int i=0; s7[i]!='\0'; ++i)
sum1 += m[s7[i]];
for (int i=0; s8[i]!='\0'; ++i)
sum2 += m[s8[i]];
//cout << sum1 << '-' << sum2 << "->" << a[1] << endl;
if (sum1 - sum2 != a[3]) return false;
return true;
}
void work(void)
{
judge ();
for (int i=0; i<=11; ++i)
{
char ch = 'A' + i;
m[ch] = -1;
if (ok())
{
cout << ch << " is the counterfeit coin and it is light." << endl;
break;
}
m[ch] = 1;
if (ok())
{
cout << ch << " is the counterfeit coin and it is heavy." << endl;
break;
}
m[ch] = 0;
}
}
int main(void)
{
//freopen ("C.in", "r", stdin);
int t;
cin >> t;
while (t--)
{
for (int i=0; i<=11; ++i) m['A' + i] = 0;
cin >> s1 >> s2 >> s3;
cin >> s4 >> s5 >> s6;
cin >> s7 >> s8 >> s9;
work ();
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator