| ||||||||||
| 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 | |||||||||
Re:一个通过的思路In Reply To:一个通过的思路 Posted by:wrong123 at 2005-12-05 17:31:39 我是按照你说的思想写的,所有数据都正确,可就是wa,麻烦你给我看一下,谢谢。
#include <iostream>
#include <string>
using namespace std;
const int num=12;
struct Coin
{
int real;
int hOrl;
Coin():real(0),hOrl(0){}
};
int maxAbs(Coin *coins)
{
int maxA=abs(coins[0].hOrl);
int maxCoin=0;
for(int i=1;i<num;i++)
if(abs(coins[i].hOrl)>maxA)
{
maxA=abs(coins[i].hOrl);
maxCoin=i;
}
return maxCoin;
}
void Mark(string **str)
{
Coin coins[num];
int i,j;
for(i=0;i<3;i++)
{
if(str[i][2]=="even")
for(j=0;j<str[i][0].length();j++)
{
coins[str[i][0][j]-'A'].real=1;
coins[str[i][1][j]-'A'].real=1;
}
if(str[i][2]=="up")
for(j=0;j<str[i][0].length();j++)
{
coins[str[i][0][j]-'A'].hOrl--;
coins[str[i][1][j]-'A'].hOrl++;
}
if(str[i][2]=="down")
for(j=0;j<str[i][0].length();j++)
{
coins[str[i][0][j]-'A'].hOrl++;
coins[str[i][0][j]-'A'].hOrl--;
}
}
for(i=0;i<num;i++)
{
if(coins[i].real)
coins[i].hOrl=0;
}
int counterfeit=maxAbs(coins);
cout<<static_cast<char>('A'+counterfeit)<<" is the counterfeit coin and it is ";
if(coins[counterfeit].hOrl>0) cout<<"light."<<endl;
else cout<<"heavy."<<endl;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
string **str=new string*[3];
for(int j=0;j<3;j++)
{
str[j]=new string[3];
for(int k=0;k<3;k++)
cin>>str[j][k];
}
Mark(str);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator