📄 pku2694.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int valu;
char suit;
} Card;
Card c[5];
void change(char *s, int k)
{
c[k].suit = s[0];
switch (s[1])
{
case 'A': c[k].valu = 1; break;
case 'X': c[k].valu = 10; break;
case 'J': c[k].valu = 11; break;
case 'Q': c[k].valu = 12; break;
case 'K': c[k].valu = 13; break;
default : c[k].valu = s[1] - '0';
}
}
int cmp(const void *a, const void *b)
{
Card *aa = (Card *)a;
Card *bb = (Card *)b;
return bb->valu - aa->valu;
}
int cmp2(const void *a, const void *b)
{
Card *aa = (Card *)a;
Card *bb = (Card *)b;
if (aa->suit != bb->suit)
{
return aa->suit - bb->suit;
}
return bb->valu - aa->valu;
}
int test()
{
qsort(c, 5, sizeof(c[0]), cmp2);
if (c[0].suit == c[4].suit && (c[0].valu - c[4].valu == 4) || c[4].valu == 1 && c[3].valu == 10)
{
return 1000;
}
qsort(c, 5, sizeof(c[0]), cmp);
if (c[0].valu == c[3].valu || c[1].valu == c[4].valu)
{
return 750;
}
if ((c[0].valu == c[2].valu && c[3].valu == c[4].valu)
|| (c[0].valu == c[1].valu && c[2].valu == c[4].valu) )
{
return 500;
}
qsort(c, 5, sizeof(c[0]), cmp2);
if (c[0].suit == c[4].suit)
{
return 350;
}
qsort(c, 5, sizeof(c[0]), cmp);
if (c[0].valu - c[4].valu == 4 || (c[3].valu == 10 && c[4].valu == 1))
{
return 250;
}
if(c[0].valu==c[2].valu ||c[1].valu==c[3].valu||c[2].valu==c[4].valu)
return 200;
if(c[0].valu ==c[1].valu &&(c[2].valu ==c[3].valu ||c[3].valu ==c[4].valu )||c[1].valu ==c[2].valu &&c[3].valu ==c[4].valu )
return 100;
if(c[0].valu ==c[1].valu ||c[1].valu ==c[2].valu ||c[2].valu ==c[3].valu ||c[3].valu ==c[4].valu )
return 50;
return 0;
}
int main()
{
char in_c[3];
int T, i;
scanf("%d", &T);
while (T--)
{
for (i = 0; i < 5; i++)
{
scanf("%s", in_c);
change(in_c, i);
}
printf("%d\n", test());
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -