1528
代码:
#include<bits/stdc++.h>
using namespace std;
int n;
struct card{
char value;
char suit;
int transvalue(){//转化为数字
switch(value){
case 'T':return 10;
case 'J':return 11;
case 'Q':return 12;
case 'K':return 13;
case 'A':return 14;
default: return value-'0';
}
}
int transsuit(){//花色转化为数字
switch(suit){
case 'C':return 1;
case 'D':return 2;
case 'S':return 3;
case 'H':return 4;
default:return 0;
}
}
friend bool operator<(card c1,card c2){
if(c1.transvalue()!=c2.transvalue()){
return c1.transvalue()<c2.transvalue();
}
else
return c1.transsuit()<c2.transsuit();
}
};
priority_queue<card>Acard;//优先队列
priority_queue<card>Ecard;
void cmp(){//输入,比较
card c;
for(int i=0;i<n;i++){
cin>>c.value>>c.suit;
Acard.push(c);
}
for(int i=0;i<n;i++){
cin>>c.value>>c.suit;
Ecard.push(c);
}
}
void count(){//计分,输出
int p=0;
card c1,c2;
while(!Acard.empty()){
c1=Acard.top();
c2=Ecard.top();
if(c1<c2){
p++;
Acard.pop();
Ecard.pop();
}
else
Acard.pop();
}
cout<<p<<endl;
}
int main(){
int T;
cin>>T;
while(T--){
while(!Acard.empty())
Acard.pop();
while(!Ecard.empty())
Ecard.pop();
cin>>n;
cmp();
count();
}
return 0;
}