📄 2030.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 2030 on 2006-06-03 at 08:02:50 */
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const char COLOR[] = "CDHS";
const char VALUE[] = "A234567891JQK";
class Card {
public:
int v, c;
void make();
bool operator <(const Card&) const;
void print() const;
};
void Card::make() {
char card[4]; scanf("%s", card);
int len = strlen(card);
for(v = 0; VALUE[v] != card[0]; v++) ;
for(c = 0; COLOR[c] != card[len-1]; c++) ;
}
bool Card::operator <(const Card& cd) const {
if(v != cd.v) return v < cd.v;
else return c < cd.c;
}
void Card::print() const {
printf(" %c", VALUE[v]);
if(v == 9) putchar('0');
putchar(COLOR[c]);
}
int main()
{
Card c[5];
int t, T, i;
scanf("%d", &T);
for(t = 1; t <= T; t++) {
for(i = 0; i < 5; i++) c[i].make();
sort(c, c+5);
do {
if(c[0].c != c[1].c) continue;
int nv = c[1].v, m = 2, l[2], ln = 0;
for(i = 3; i < 5; i++)
if(c[i] < c[m]) m = i;
nv += m-1;
for(i = 2; i < 5; i++)
if(i != m) l[ln++] = i;
if(c[l[1]] < c[l[0]]) nv += 3;
if(nv%13 == c[0].v) break;
} while(next_permutation(c, c+5));
printf("Problem %d:", t);
for(i = 0; i < 5; i++) c[i].print();
putchar('\n');
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -