| ||||||||||
| 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 | |||||||||
萌新一枚,检验答案没问题,但就是WA,好吧,记录一下# include <iostream>
using namespace std;
struct Card
{
char ca[5]; //symbol,digit,color,shading
};
int FindSet(Card c[],Card store[][3]);
bool TypeSameOrDif(Card c,Card d,Card e,int t);
bool CardSet(Card c,Card d,Card e);
int main()
{
Card card[12];
Card store[250][3];
while(cin>>card[0].ca)
{
if(strlen(card[0].ca) == 0)
continue;
for(int i = 1;i<12;++i)
{
cin>>card[i].ca;
cin.clear();
cin.sync();
}
printf("CARDS: ");
for(int i = 0;i<12;++i)
{
printf("%c%c%c%c ",card[i].ca[0],card[i].ca[1],card[i].ca[2],card[i].ca[3]);
}
printf("\n");
int count = FindSet(card,store) ;
if(count == -1)
printf("SETS: *** None Found ***\n");
else
{
printf("SETS: 1. %s %s %s\n",store[0][0].ca,store[0][1].ca,store[0][2].ca);
for(int i = 1;i<=count;++i)
printf(" %d. %s %s %s\n",i+1,store[i][0].ca,store[i][1].ca,store[i][2].ca);
}
printf("\n");
}
//system("pause");
return 0;
}
int FindSet(Card c[],Card store[][3])
{
int count = -1;
for(int i = 0;i<10;++i)
for(int j = i+1;j<11;++j)
for(int k = j+1;k<12;++k)
if(CardSet(c[i],c[j],c[k]))
{
count++;
store[count][0] = c[i];
store[count][1] = c[j];
store[count][2] = c[k];
}
return count;
}
bool TypeSameOrDif(Card c,Card d,Card e,int t)
{
if((c.ca[t] == d.ca[t])&&(c.ca[t] == e.ca[t])&&(d.ca[t] == e.ca[t]) || ((c.ca[t] != d.ca[t])&&(c.ca[t] != e.ca[t])&&(d.ca[t] != e.ca[t])))
return true;
return false;
}
bool CardSet(Card c,Card d,Card e)
{
bool b = true;
for(int i = 0;i<4;++i)
b = b && TypeSameOrDif(c,d,e,i);
return b;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator