您的位置:首页 > 其它

悲剧的出牌 模拟题

2011-09-01 14:51 267 查看
悲剧的队内赛,我还是太弱了= = 倒数第二的好成绩啊~~

悲剧的代码= = 300+啊~~~

#include <iostream>
#include <vector>
#include <stack>
#include <stdio.h>
#include <string.h>
#include <stack>
#include <map>
using namespace std;

struct node
{
int date;
int flower;
};
node p1[5];
node p2[5];

bool cmp( node a,node b )
{
if( a.date==b.date )
return a.flower>b.flower;
return a.date>b.date;
}
int cmpp( node a,node b )
{
if( a.date==b.date )
{
if( a.flower==b.flower )
return 0;
else if( a.flower>b.flower )
return 1;
else return -1;
}
else if( a.date>b.date )
return 1;
else
return -1;
}
void judge( node sign1,node sign2 )
{
int t=cmpp( sign1,sign2 );
switch( t )
{
case -1:
printf( "second\n");break;
case 0:
printf( "equal\n" );break;
case 1:
printf( "first\n" );break;
}
}
int main()
{
//freopen("e.in","r",stdin); freopen("e.out","w",stdout);
int n;
scanf( "%d",&n );
while( n-- )
{
char d;
char c;
int i;
memset( p1,0,sizeof(p1) );
memset( p2,0,sizeof(p2) );

for( i=0;i<5;i++ )
{
scanf( "\n%c%c",&d,&c );
if( d<='9'&& d>='2' )
p1[i].date=d-'0';
else
{
switch( d )
{
case 'A':p1[i].date=14;break;
case 'T':p1[i].date=10;break;
case 'J':p1[i].date=11;break;
case 'Q':p1[i].date=12;break;
case 'K':p1[i].date=13;break;
}
}
switch( c )
{
case 'S': p1[i].flower++;
case 'H': p1[i].flower++;
case 'C': p1[i].flower++;
case 'D': p1[i].flower++;
}
//printf( "%d %d\n",p1[i].date,p1[i].flower );
}
for( i=0;i<5;i++ )
{
scanf( "\n%c %c",&d,&c );
if( d<='9'&& d>='2' )
p2[i].date=d-'0';
else
{
switch( d )
{
case 'A':p2[i].date=14;break;
case 'T':p2[i].date=10;break;
case 'J':p2[i].date=11;break;
case 'Q':p2[i].date=12;break;
case 'K':p2[i].date=13;break;
}
}
switch( c )
{
case 'S': p2[i].flower++;
case 'H': p2[i].flower++;
case 'C': p2[i].flower++;
case 'D': p2[i].flower++;
}
//printf( "%d %d\n",p2[i].date,p2[i].flower );
//printf( "%d\n",p2[i].flower );
}
sort( p1,p1+5,cmp );
sort( p2,p2+5,cmp );
bool tonghua1=false;
bool shunzi1=false;
bool four1=false;
bool three1=false;
node sign1;
bool tonghua2=false;
bool shunzi2=false;
bool four2=false;
bool three2=false;
node sign2;
if( p1[0].date-p1[1].date==1 && p1[1].date-p1[2].date==1 && p1[2].date-p1[3].date==1 && p1[3].date-p1[4].date==1 ){
shunzi1=true;
sign1.date=p1[0].date;
sign1.flower=p1[0].flower;
}
if( p1[0].flower==p1[4].flower && p1[1].flower==p1[2].flower && p1[2].flower==p1[3].flower && p1[3].flower==p1[4].flower ){
tonghua1=true;
sign1.date=p1[0].date;
sign1.flower=p1[0].flower;
}
if( p1[1].date==p1[2].date && p1[1].date==p1[3].date )
{
if( p1[0].date==p1[1].date )
{
four1=true;
sign1.date=p1[0].date;
sign1.flower=p1[0].flower;
}
if( p1[4].date==p1[1].date )
{
four1=true;
sign1.date=p1[1].date;
sign1.flower=p1[1].flower;
}
}
if( p1[2].date==p1[0].date )
{
three1=true;
sign1.date=p1[0].date;
sign1.flower=p1[0].flower;
}
if( p1[2].date==p1[4].date )
{
three1=true;
sign1.date=p1[2].date;
sign1.flower=p1[2].flower;
}
//-------------------------------------------------------
if( p2[0].date-p2[1].date==1 && p2[1].date-p2[2].date==1 && p2[2].date-p2[3].date==1 && p2[3].date-p2[4].date==1 ){
shunzi2=true;
sign2.date=p2[0].date;
sign2.flower=p2[0].flower;
}
if( p2[0].flower==p2[1].flower && p2[1].flower==p2[2].flower && p2[2].flower==p2[3].flower && p2[3].flower==p2[4].flower ){
tonghua2=true;
sign2.date=p2[0].date;
sign2.flower=p2[0].flower;
}
if( p2[1].date==p2[2].date && p2[1].date==p2[3].date )
{
if( p2[0].date==p2[1].date )
{
four2=true;
sign2.date=p2[0].date;
sign2.flower=p2[0].flower;
}
if( p2[4].date==p2[1].date )
{
four2=true;
sign2.date=p2[1].date;
sign2.flower=p2[1].flower;
}
}
if( p2[2].date==p2[0].date )
{
three2=true;
sign2.date=p2[0].date;
sign2.flower=p2[0].flower;
}
if( p2[2].date==p2[4].date )
{
three2=true;
sign2.date=p2[2].date;
sign2.flower=p2[2].flower;
}
//printf( "tonghua1%d shuzi1:%d four1:%d three1:%d\n",tonghua1,shunzi1,four1,three1);
//printf( "tonghua1%d shuzi1:%d four1:%d three1:%d\n",tonghua2,shunzi2,four2,three2);
//--------------------------------------------------------------------
if( (tonghua1 && shunzi1) || (tonghua2 && shunzi2) )
{
if( (tonghua1 && shunzi1 ) && ( tonghua2 && shunzi2) )
{
judge(sign1,sign2);
}
else if( tonghua1 && shunzi1 )
printf( "first\n" );
else
printf( "second\n" );
continue;
}
if( four1 || four2 )
{
if( four1 && four2 )
{
judge( sign1,sign2);
}
else if( four1 )
printf( "first\n" );
else
printf( "second\n" );
continue;
}
if( three1 || three2 )
{
//printf( "%d %d %d %d\n",sign1.date ,sign1.flower,sign2.date ,sign2.flower );
if( three1 && three2 )
{
judge( sign1,sign2 );
}
else if( three1 )
printf( "first\n" );
else
printf( "second\n" );
continue;
}
if( tonghua1 || tonghua2 )
{
if( tonghua1 && tonghua2 )
{
judge( sign1,sign2 );
}
else if( tonghua1 )
printf( "first\n" );
else
printf( "second\n" );
continue;
}
judge( sign1,sign2 );
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c date