QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#754823#9549. The Magicianucup-team5243#AC ✓86ms6012kbC++2313.2kb2024-11-16 15:53:402024-11-21 18:14:38

Judging History

你现在查看的是测评时间为 2024-11-21 18:14:38 的历史记录

  • [2024-11-27 17:57:00]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:AC
  • 用时:88ms
  • 内存:6016kb
  • [2024-11-27 17:55:10]
  • hack成功,自动添加数据
  • (/hack/1262)
  • [2024-11-26 23:01:59]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:87ms
  • 内存:5944kb
  • [2024-11-26 22:59:39]
  • hack成功,自动添加数据
  • (/hack/1259)
  • [2024-11-25 12:08:36]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:88ms
  • 内存:5992kb
  • [2024-11-25 12:05:56]
  • hack成功,自动添加数据
  • (/hack/1250)
  • [2024-11-25 11:55:50]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:95ms
  • 内存:6012kb
  • [2024-11-25 11:53:37]
  • hack成功,自动添加数据
  • (/hack/1249)
  • [2024-11-25 11:36:47]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:92ms
  • 内存:5944kb
  • [2024-11-25 11:33:10]
  • hack成功,自动添加数据
  • (/hack/1247)
  • [2024-11-25 11:27:06]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:93ms
  • 内存:5996kb
  • [2024-11-25 11:23:45]
  • hack成功,自动添加数据
  • (/hack/1246)
  • [2024-11-25 11:07:32]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:91ms
  • 内存:5996kb
  • [2024-11-25 11:04:42]
  • hack成功,自动添加数据
  • (/hack/1245)
  • [2024-11-23 19:32:50]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:91ms
  • 内存:5996kb
  • [2024-11-23 19:31:45]
  • hack成功,自动添加数据
  • (/hack/1244)
  • [2024-11-21 22:07:20]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:91ms
  • 内存:6012kb
  • [2024-11-21 22:06:48]
  • hack成功,自动添加数据
  • (/hack/1231)
  • [2024-11-21 22:03:48]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:93ms
  • 内存:5948kb
  • [2024-11-21 22:03:20]
  • hack成功,自动添加数据
  • (/hack/1230)
  • [2024-11-21 21:56:07]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:91ms
  • 内存:6016kb
  • [2024-11-21 21:55:33]
  • hack成功,自动添加数据
  • (/hack/1229)
  • [2024-11-21 21:37:59]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:94ms
  • 内存:5952kb
  • [2024-11-21 21:37:18]
  • hack成功,自动添加数据
  • (/hack/1228)
  • [2024-11-21 21:26:37]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:92ms
  • 内存:5948kb
  • [2024-11-21 21:26:05]
  • hack成功,自动添加数据
  • (/hack/1227)
  • [2024-11-21 19:13:37]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:88ms
  • 内存:6028kb
  • [2024-11-21 19:12:41]
  • hack成功,自动添加数据
  • (/hack/1225)
  • [2024-11-21 19:06:49]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:94ms
  • 内存:6008kb
  • [2024-11-21 19:05:51]
  • hack成功,自动添加数据
  • (/hack/1224)
  • [2024-11-21 18:31:20]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:90ms
  • 内存:6012kb
  • [2024-11-21 18:30:17]
  • hack成功,自动添加数据
  • (/hack/1223)
  • [2024-11-21 18:14:38]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:86ms
  • 内存:6012kb
  • [2024-11-21 18:12:40]
  • hack成功,自动添加数据
  • (/hack/1222)
  • [2024-11-21 17:39:38]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:92ms
  • 内存:5976kb
  • [2024-11-21 17:36:20]
  • hack成功,自动添加数据
  • (/hack/1221)
  • [2024-11-20 19:18:43]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:90ms
  • 内存:6004kb
  • [2024-11-20 19:16:22]
  • hack成功,自动添加数据
  • (/hack/1216)
  • [2024-11-20 18:12:03]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:85ms
  • 内存:5960kb
  • [2024-11-20 18:08:54]
  • hack成功,自动添加数据
  • (/hack/1215)
  • [2024-11-20 13:47:35]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:92ms
  • 内存:6028kb
  • [2024-11-20 13:45:08]
  • hack成功,自动添加数据
  • (/hack/1202)
  • [2024-11-16 15:53:42]
  • 评测
  • 测评结果:100
  • 用时:91ms
  • 内存:6012kb
  • [2024-11-16 15:53:40]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

// ★★★★★ いわゆるQCFium、おまじない的につけとくと速い
#ifndef LOCAL_TEST
#pragma GCC target ("avx")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#endif // LOCAL_TEST

// ★★★★★ 型名を短くする、ちょっと嬉しい
using ll = long long;
using pii = pair<int, int>; using pll = pair<ll, ll>;
using vi = vector<int>;  using vvi = vector<vi>; using vvvi = vector<vvi>;
using vl = vector<ll>;  using vvl = vector<vl>; using vvvl = vector<vvl>;
using vb = vector<bool>; using vvb = vector<vb>; using vvvb = vector<vvb>;
using vc = vector<char>; using vvc = vector<vc>; using vvvc = vector<vvc>;
using vd = vector<double>; using vvd = vector<vd>; using vvvd = vector<vvd>;
using vs = vector<string>; using vvs = vector<vector<string>>; using vvvs = vector<vector<vector<string>>>;

// ★★★ 多次元vector初期化用の関数、ちょっと癖があるけど短く書ける
// テンプレなし:vector dp(n+1, vector(m+1, vector<ll>(k+1, 0)));
// テンプレあり:auto dp = vvv<ll>(n+1, m+1, k+1, 0);
template<typename T> vector<vector<T>> vv(int h, int w, T val = T()) { return vector(h, vector<T>(w, val)); }
template<typename T> vector<vector<vector<T>>> vvv(int h1, int h2, int h3, T val = T()) { return vector(h1, vector(h2, vector<T>(h3, val))); }
template<typename T> vector<vector<vector<vector<T>>>> vvvv(int h1, int h2, int h3, int h4, T val = T()) { return vector(h1, vector(h2, vector(h3, vector<T>(h4, val)))); }

// ★★ いわゆるheapq、C++のデフォルトpriority_queueは大きい順(Python、Nimとは逆)に注意
template <class T> using priority_queue_min = priority_queue<T, vector<T>, greater<T>>;

// ★ 定数系、お好みで
constexpr double PI = 3.14159265358979323;
constexpr int INF = 100100111; constexpr ll INFL = 3300300300300300491LL;
float EPS = 1e-8; double EPSL = 1e-10;


// ★★★★ 入出力高速化、おまじない
struct Nyan { Nyan() { cin.tie(nullptr); ios::sync_with_stdio(false); cout << fixed << setprecision(18); } } nyan;

// マクロ類
// わりと全部使う
// all: sort(all(a)) とか lower_bount(all(a), x) とか
// rep: オーバーロードしているので、引数の個数で挙動が変わる、基本Pythonのrangeに近い感覚で使えるようにしてるはず
//      rep(5) -> 5回ループ(新たにループ変数は作らない)
//      rep(i, 5) -> i=0,1,...,4
//      rep(i, 5) -> i=0,1,...,4
//      rep(i, 1, 6) -> i=1,...,4
//      rep(i, 1, 6, 2) -> i=1,3,5
//      rep(i, 10, -1, -1) -> i=10,9,.., 0
// smod, sdiv: python-like mod, div
// uniq: 重複削除、ソートされるのに注意
// vl a = {1, 3, 2, 5, 2, 3}; uniq(a); // a = {1, 2, 3, 5}
#define all(a) (a).begin(), (a).end()
#define sz(x) ((ll)(x).size())
#define rep1(n) for(ll dummy_iter = 0LL; dummy_iter < n; ++dummy_iter) // 0,1,...,n-1
#define rep2(i, n) for(ll i = 0LL, i##_counter = 0LL; i##_counter < ll(n); ++(i##_counter), (i) = i##_counter) // i=0,1,...,n-1
#define rep3(i, s, t) for(ll i = ll(s), i##_counter = ll(s); i##_counter < ll(t); ++(i##_counter), (i) = (i##_counter)) // i=s,s+1,...,t-1
#define rep4(i, s, t, step) for(ll i##_counter = step > 0 ? ll(s) : -ll(s), i##_end = step > 0 ? ll(t) : -ll(t), i##_step = abs(step), i = ll(s); i##_counter < i##_end; i##_counter += i##_step, i = step > 0 ? i##_counter : -i##_counter) // i=s,s+step,...,<t
#define overload4(a, b, c, d, e, ...) e
#define rep(...) overload4(__VA_ARGS__, rep4, rep3, rep2, rep1)(__VA_ARGS__)
#define repe(a, v) for(auto& a : (v)) // iterate over all elements in v
#define smod(n, m) ((((n) % (m)) + (m)) % (m))
#define sdiv(n, m) (((n) - smod(n, m)) / (m))
#define uniq(a) {sort(all(a)); (a).erase(unique(all(a)), (a).end());}

// ★★ Yes, No なくても困らない
int Yes(bool b=true) { cout << (b ? "Yes\n" : "No\n"); return 0; };
int YES(bool b=true) { cout << (b ? "YES\n" : "NO\n"); return 0; };
int No(bool b=true) {return Yes(!b);};
int NO(bool b=true) {return YES(!b);};

// ★★★★ max, min, sum のvector向けオーバーロード、デフォルトがちょっと使いにくいので
template<typename T, size_t N> T max(array<T, N>& a) { return *max_element(all(a)); };
template<typename T, size_t N> T min(array<T, N>& a) { return *min_element(all(a)); };
template<typename T> T max(vector<T>& a) { return *max_element(all(a)); };
template<typename T> T min(vector<T>& a) { return *min_element(all(a)); };
template<typename T> vector<T> vec_slice(const vector<T>& a, int l, int r) { vector<T> rev; rep(i, l, r) rev.push_back(a[i]); return rev; };
template<typename T> T sum(vector<T>& a, T zero = T(0)) { T rev = zero; rep(i, sz(a)) rev += a[i]; return rev; };

// ★★★ vector の各要素を1増やす/減らす、グラフ系の入力受けでちょっと嬉しい
// vector<ll> a = {1, 2, 4}; ++a; // a = {2, 3, 5}
template <class T> inline vector<T>& operator--(vector<T>& v) { repe(x, v) --x; return v; }
template <class T> inline vector<T>& operator++(vector<T>& v) { repe(x, v) ++x; return v; }

// ★★★★ 整数pow/sqrt
ll powm(ll a, ll n, ll mod=INFL) {
    ll res = 1;
    while (n > 0) {
        if (n & 1) res = (res * a) % mod;
        if (n > 1) a = (a * a) % mod;
        n >>= 1;
    }
    return res;
}
ll sqrtll(ll x) {
    assert(x >= 0);
    ll rev = sqrt(x);
    while(rev * rev > x) --rev;
    while((rev+1) * (rev+1)<=x) ++rev;
    return rev;
}

// ★★★★ chmax, chmin
template <class T> inline bool chmax(T& M, const T& x) { if (M < x) { M = x; return true; } return false; }
template <class T> inline bool chmin(T& m, const T& x) { if (m > x) { m = x; return true; } return false; }

// ★★★★★ vector を直接cinできるようにする
// map, set, multiset とかを直接 cout できるようにする
template <class T, class U> inline istream& operator>>(istream& is, pair<T, U>& p);
template <class T> inline istream& operator>>(istream& is, vector<T>& v);
template <class T, class U> inline ostream& operator<<(ostream& os, const pair<T, U>& p);
template <class T> inline ostream& operator<<(ostream& os, const vector<T>& v);
template <typename T, typename S> ostream &operator<<(ostream &os, const map<T, S> &mp);
template <typename T> ostream &operator<<(ostream &os, const set<T> &st);
template <typename T> ostream &operator<<(ostream &os, const multiset<T> &st);
template <typename T> ostream &operator<<(ostream &os, const unordered_set<T> &st);
template <typename T> ostream &operator<<(ostream &os, deque<T> q);
template <class T, class Container, class Compare> ostream &operator<<(ostream &os, priority_queue<T, Container, Compare> pq);

// overload operators
template <class T, class U> inline istream& operator>>(istream& is, pair<T, U>& p) { is >> p.first >> p.second; return is; }
template <class T> inline istream& operator>>(istream& is, vector<T>& v) { repe(x, v) is >> x; return is; }
template <class T, class U> inline ostream& operator<<(ostream& os, const pair<T, U>& p) { os << p.first << " " << p.second; return os; }
template <class T> inline ostream& operator<<(ostream& os, const vector<T>& v) { rep(i, sz(v)) { os << v.at(i); if (i != sz(v) - 1) os << " "; } return os; }
template <typename T, typename S> ostream &operator<<(ostream &os, const map<T, S> &mp) { for (auto &[key, val] : mp) { os << key << ":" << val << " "; } return os; }
template <typename T> ostream &operator<<(ostream &os, const set<T> &st) { auto itr = st.begin(); for (int i = 0; i < (int)st.size(); i++) { os << *itr << (i + 1 != (int)st.size() ? " " : ""); itr++; } return os; }
template <typename T> ostream &operator<<(ostream &os, const multiset<T> &st) { auto itr = st.begin(); for (int i = 0; i < (int)st.size(); i++) { os << *itr << (i + 1 != (int)st.size() ? " " : ""); itr++; } return os; }
template <typename T> ostream &operator<<(ostream &os, const unordered_set<T> &st) { ll cnt = 0; for (auto &e : st) { os << e << (++cnt != (int)st.size() ? " " : ""); } return os; }
template <typename T> ostream &operator<<(ostream &os, deque<T> q) { while (q.size()) { os << q.front(); q.pop_front(); if (q.size()) os << " "; } return os; }
template <class T, class Container, class Compare> ostream &operator<<(ostream &os, priority_queue<T, Container, Compare> pq) { while (pq.size()) { os << pq.top() << " "; pq.pop(); } return os; }
#define out(x) cout << x << endl
#define dout(x) cout << fixed << setprecision(10) << x << endl

int main(){
    ll T;
    cin >> T;
    rep(T){
        ll N;
        cin >> N;
        vs C(N);
        cin >> C;
        vl X(6);
        cin >> X;
        vl cnt(4);
        rep(i,4){
            cnt[i] = 0;
        }
        //cout << C[0] << endl;
        rep(i,N){
            if(C[i][1] == 'D'){
                cnt[0]++;
            }else if(C[i][1] == 'C'){
                cnt[1]++;
            }else if(C[i][1] == 'H'){
                cnt[2]++;
            }else{
                cnt[3]++;
            }
        } 
        ll ans = 0;
        //cout << C << endl;
        //cout << cnt << endl;
        rep(i,4){
            ans += cnt[i]/5;
            cnt[i] %= 5;
        }
        auto dp = vvvv<vector<vector<ll>>>(5,5,5,5,vv<ll>(5,64,-1));
        auto seen = vvvv<vector<vector<bool>>>(5,5,5,5,vv<bool>(5,64,false));
        vector<bool> canuse = {false,false,false,false};
        rep(i,4){
            if (cnt[i] > 0){
                canuse[i] = true;
            }
        }
        ll startbits = 0;
        rep(i,6){
            if (X[i] == 1){
                startbits |= (1<<i);
            }
        }
        
        auto dfs = [&](auto self,ll a,ll b,ll c,ll d,ll e,int bits) {
            if(seen[a][b][c][d][e][bits]){
                return dp[a][b][c][d][e][bits];
            }
            
            seen[a][b][c][d][e][bits] = true;
            ll result = 0;
            rep(test,4){
                rep(use,1,e+1){
                    vl tmp = {a,b,c,d,e};
                    tmp[4] -= use;
                    tmp[test] += use;
                    ll flag = 0;
                    if (tmp[test] >= 5){
                        tmp[test] -= 5;
                        flag = 1;
                    }
                    chmax(result,self(self,tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],bits)+flag);

                }
                
            }
        
            rep(test,4){
                if((bits&(1<<test)) != 0){
                    rep(i,0,4){
                        rep(j,0,4){
                            rep(k,0,4){
                                vl tmp = {a,b,c,d,e};
                                tmp[test] += 3;
                                tmp[i] -= 1;
                                tmp[j] -= 1;
                                tmp[k] -= 1;
                                ll flag = 0;
                                rep(i,5){
                                    if (tmp[i] < 0){
                                        flag = -1;
                                        break;
                                    }else if(tmp[i] >= 5){
                                        tmp[i] -= 5;
                                        flag += 1;
                                    }
                                }
                                if(flag != -1){
                                    chmax(result,self(self,tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],bits^(1<<test))+flag);
                                }
                                
                            }
                        }
                    }
                }
            }
            if((bits&(1<<4)) != 0){
            rep(i,0,4){
                vl tmp = {a,b,c,d,e};
                if(tmp[i] == 0){
                    continue;
                }
                tmp[i] -= 1;
                tmp[4] += 1;
                ll flag = 0;
                if (tmp[4] == 5){
                    tmp[4] = 0;
                    flag = 1;
                }
                chmax(result,self(self,tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],bits^(1<<4))+flag);
            }
            }
            if((bits&(1<<5)) != 0){
            rep(i,4){
                rep(j,4){
                    vl tmp = {a,b,c,d,e};
                    if(tmp[i] == 0){
                        continue;
                    }
                    if(canuse[j] || (((bits&(1<<j)) == 0) && (startbits&(1<<j)) != 0)){
                        tmp[i] -= 1;
                        tmp[j] += 1;
                        ll flag = 0;
                        if (tmp[j] == 5){
                            tmp[j] = 0;
                            flag = 1;
                        }
                        chmax(result,self(self,tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],bits^(1<<5))+flag);
                    }
                
            }
            }
            }
        dp[a][b][c][d][e][bits] = result;
        //cout << a << " " << b << " " << c << " " << d << " " << e << " " << bits << " " << result << endl;
        return result;
    };
    cout << dfs(dfs,cnt[0],cnt[1],cnt[2],cnt[3],0,startbits)+ans << endl;
    }
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 5872kb

input:

4
5
2H 3H 4H 5H 6D
1 1 1 1 0 0
5
2S 3S 4D 5C 6D
0 0 1 0 1 1
5
2S 3S 4D 5C 6D
0 0 1 0 1 0
13
AS 2S 3S 4S 5H 6H 7H 8H 9H TH JH QH KH
0 0 0 0 0 1

output:

1
1
0
2

result:

ok 4 lines

Test #2:

score: 0
Accepted
time: 5ms
memory: 6012kb

input:

13
10
AD 2D 3D 4D 5D 6D 7D 8D 9D TD
0 0 1 0 0 0
10
AH 2D 3D 4D 5D 6D 7D 8D 9D TD
0 0 1 0 0 0
10
AH 2H 3D 4D 5D 6D 7D 8D 9D TD
0 0 1 0 0 0
10
AH 2H 3H 4D 5D 6D 7D 8D 9D TD
0 0 1 0 0 0
10
AH 2H 3H 4H 5D 6D 7D 8D 9D TD
0 0 1 0 0 0
10
AS 2S 3S 4S 5S 6S 7S 8S 9S TS
0 1 0 0 0 0
10
AC 2S 3S 4S 5S 6S 7S 8S ...

output:

2
1
2
2
2
2
1
2
2
2
0
0
0

result:

ok 13 lines

Test #3:

score: 0
Accepted
time: 33ms
memory: 5816kb

input:

2
52
AH AD AC AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 7S 8H 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH JD JC JS QH QD QC QS KH KD KC KS
1 1 1 1 1 1
52
AH AD AC AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 7S 8H 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH J...

output:

10
10

result:

ok 2 lines

Test #4:

score: 0
Accepted
time: 14ms
memory: 5948kb

input:

9
12
2H TH 4C QC JH JC 8D KC 3C 6H TC 9S
0 0 0 1 0 0
11
5S 2C TH 8S JD 2S 7D AH 4S AC TS
1 0 0 0 0 0
11
QC 4C 5S QS 9H 5H 6H 7H 3D 7D 8D
1 1 1 0 1 1
11
AS AD 3D 8C 5H 2S JC 6C 8H QD JS
0 1 0 0 0 1
11
KC TH 4S 2H 8S 9S QC 3S AD KS 5D
0 0 1 0 0 1
12
4D 5H 6C 3D KH KS 3S 7S TC 4S 4C JS
0 1 0 1 1 0
12
J...

output:

1
2
2
1
2
2
2
2
2

result:

ok 9 lines

Test #5:

score: 0
Accepted
time: 8ms
memory: 5788kb

input:

10
10
5S 6S 4S 2D JD 3H JH 2H 4H 2C
1 1 0 1 0 0
11
3H 2D 6D 7S KD 6C 8H 2S 9H KH 3D
0 1 0 1 0 1
11
4D AH TS 6S TC 3S 9C 3C 5S JH TD
0 1 0 1 0 0
10
9H 3S TC TS 8S 6S TH 7D TD 5D
0 0 0 0 0 1
11
5H KS QH 4D 8H 6H QC 7H 8D JS JC
0 0 1 0 0 0
10
AD 5D TC 8D 5C 5S 8S QS 3C JD
0 0 0 1 0 1
10
TC TH 4S 8C JC ...

output:

2
2
2
1
1
2
2
1
2
2

result:

ok 10 lines

Test #6:

score: 0
Accepted
time: 0ms
memory: 5948kb

input:

2
52
4S 5H AD 9D 9C 4C 9S QD 2C JS 2D 3S 3D AC QS 5S KD 4D KH 9H TC 6C 6S 7D 7C KS 3H 6H KC JC AH 8H QH 3C QC TS 8C TH TD 4H 7S 6D 8S AS 5C JD JH 2H 5D 2S 8D 7H
0 0 0 1 1 1
52
9S JC 8S 2D 2S TS 4C 2C 6D KS 5H KD AH 5D 8C KC QH 6C 4D 9C 8H 5C 3H JH TD QS AC AS QC 6H 4H 7D QD 9D TH 4S 2H JD TC JS 7C A...

output:

10
10

result:

ok 2 lines

Test #7:

score: 0
Accepted
time: 3ms
memory: 5788kb

input:

3
35
9H JC 2H TH 7S 6D AS 4H 3D AD KS TS 2C 9S 5D 8H KD TC KH 5C QD 4S 3C 6C JS AC 2D JD 3H QH 9D 5S 6S JH 5H
0 1 0 0 1 0
34
TS 2H 4H 9D KD JC QS 6C 2D QD 2S JS 7C JH 7H 8H 4S 3C AD QC AS 7D KC 8S 2C 3S 8C 5D 5C AC TD 3H 4C 9H
0 1 1 1 0 0
35
6C 9H 3D TC 4D 3H 2S 8D AS JD 6H 2C 5D QH TD 9D 3S 5C 9C A...

output:

7
6
5

result:

ok 3 lines

Test #8:

score: 0
Accepted
time: 6ms
memory: 5820kb

input:

10
10
AC 7C 9S KD 4S 2C 2S 3D 6D 7H
1 1 0 1 0 1
10
9D AS 8S JS 6C KS 4D 3D 2S QC
0 1 0 0 0 0
10
QC 5H 5D 2S 7S 8S 3D 8C TS 8H
1 0 1 1 0 1
10
KD 7D 8S TC 3S 6C AS 4C 9H KC
1 0 0 0 0 0
11
8C 2C JS 6C QC 2H 5C 9H 3C AS 9D
1 0 1 0 1 0
10
8H 5D 5C QH JS JC 6H 4H 8C 7C
0 0 0 1 1 0
13
9H 4S 8D 3H KD TC 2D ...

output:

2
2
2
1
2
1
1
2
1
1

result:

ok 10 lines

Test #9:

score: 0
Accepted
time: 7ms
memory: 5760kb

input:

13
5
TH JH QD KD AD
1 0 0 0 0 0
5
TH JH QC KC AC
1 0 0 0 0 0
5
TH JH QS KS AS
1 0 0 0 0 0
5
TD JD QH KH AH
1 0 0 0 0 0
5
TD JD QC KC AC
1 0 0 0 0 0
5
TD JD QS KS AS
1 0 0 0 0 0
5
TC JC QH KH AH
1 0 0 0 0 0
5
TC JC QD KD AD
1 0 0 0 0 0
5
TC JC QS KS AS
1 0 0 0 0 0
5
TS JS QH KH AH
1 0 0 0 0 0
5
TS JS...

output:

1
0
0
1
1
1
0
1
0
0
1
0
8

result:

ok 13 lines

Test #10:

score: 0
Accepted
time: 7ms
memory: 5940kb

input:

13
5
TH JH QD KD AD
0 1 0 0 0 0
5
TH JH QC KC AC
0 1 0 0 0 0
5
TH JH QS KS AS
0 1 0 0 0 0
5
TD JD QH KH AH
0 1 0 0 0 0
5
TD JD QC KC AC
0 1 0 0 0 0
5
TD JD QS KS AS
0 1 0 0 0 0
5
TC JC QH KH AH
0 1 0 0 0 0
5
TC JC QD KD AD
0 1 0 0 0 0
5
TC JC QS KS AS
0 1 0 0 0 0
5
TS JS QH KH AH
0 1 0 0 0 0
5
TS JS...

output:

0
1
0
0
1
0
1
1
1
0
0
1
8

result:

ok 13 lines

Test #11:

score: 0
Accepted
time: 6ms
memory: 5812kb

input:

13
5
TH JH QD KD AD
0 0 1 0 0 0
5
TH JH QC KC AC
0 0 1 0 0 0
5
TH JH QS KS AS
0 0 1 0 0 0
5
TD JD QH KH AH
0 0 1 0 0 0
5
TD JD QC KC AC
0 0 1 0 0 0
5
TD JD QS KS AS
0 0 1 0 0 0
5
TC JC QH KH AH
0 0 1 0 0 0
5
TC JC QD KD AD
0 0 1 0 0 0
5
TC JC QS KS AS
0 0 1 0 0 0
5
TS JS QH KH AH
0 0 1 0 0 0
5
TS JS...

output:

1
1
1
1
0
0
1
0
0
1
0
0
8

result:

ok 13 lines

Test #12:

score: 0
Accepted
time: 6ms
memory: 5748kb

input:

13
5
TH JH QD KD AD
0 0 0 1 0 0
5
TH JH QC KC AC
0 0 0 1 0 0
5
TH JH QS KS AS
0 0 0 1 0 0
5
TD JD QH KH AH
0 0 0 1 0 0
5
TD JD QC KC AC
0 0 0 1 0 0
5
TD JD QS KS AS
0 0 0 1 0 0
5
TC JC QH KH AH
0 0 0 1 0 0
5
TC JC QD KD AD
0 0 0 1 0 0
5
TC JC QS KS AS
0 0 0 1 0 0
5
TS JS QH KH AH
0 0 0 1 0 0
5
TS JS...

output:

0
0
1
0
0
1
0
0
1
1
1
1
8

result:

ok 13 lines

Test #13:

score: 0
Accepted
time: 2ms
memory: 5744kb

input:

2
52
4S 7H 3C JH 3H 2H 6H 2D 8C 6S 5H KC 8S TC JS 2C 7S 6D TD 2S 9S TS 3D 9D JD 5D 8H KS AC TH 5S JC 9C 4D QC QD 6C AS 3S 7C KD 8D AH KH 7D 4H 4C 5C AD QS 9H QH
0 0 0 1 0 0
52
6D 7C 5H 2S 9S 9C TS 4H 6H 3S QS KC KH KD 5S 4C 8D 3D JD TC 8H 6C QH KS QC 3H 2H AS 9D 3C 7H 8S TD AD 9H JS TH 7S 5C 4S JC J...

output:

9
9

result:

ok 2 lines

Test #14:

score: 0
Accepted
time: 3ms
memory: 5624kb

input:

3
36
TH 6D JC 7C TS 8S 6H 6S AS 4C 8H TD 4D JD KS 5S 5D 7S 7D 2S AH KD JH 3S 2C 5C 9C 8D QS 9D 4S 9S JS 6C AD 3C
0 0 0 0 1 1
34
JD 7C 5S 9S KD 2D KH 4C 8C 3S 6C 4D 5H TC 5C 7H QC 6S 9D 9H 6H 6D 3D 8D 3H 8H 2C KS 7D JH 2S JC 3C QD
0 0 1 1 0 0
34
KC 6D 5S TD 2D 4D AD QH 2C 6H 5C QD 8H 8S 2H TH 4H AS J...

output:

7
6
6

result:

ok 3 lines

Test #15:

score: 0
Accepted
time: 0ms
memory: 5788kb

input:

4
26
KH JH 2S 9S 3S QS KD 8D QD TH TC 2D JS 5D 7S 8S 9D 4D JD AD 2C KC 3H 8H 3D 6C
0 0 1 0 1 1
26
QH 7D AC 7S 6C 4D 4S 8D 7H 8S 6S 3H AS 6H 5H TC 5C 6D 8H KC QC JH 2C 2H TH 9C
0 0 0 0 0 0
26
TC 6C TD 2S 6H 9S 4D AS 3D AD 5D KC 7H KD JH TS TH QC 5S JD 7S 2D KS QH 5H 7D
1 0 0 0 0 0
26
TC 2C 9D KH 8H 7...

output:

5
3
4
5

result:

ok 4 lines

Test #16:

score: 0
Accepted
time: 4ms
memory: 5800kb

input:

5
21
3S 3H 9H 5H 6C 6H 2C 7D 4D 7S 7H KS 9C 8H 5S 8S 6S 2H KH TH 3C
1 0 0 1 0 0
21
QH 4S AH 8C 7C 6C 5S KS 3H AS 9H JH 5C KC JC 4C 3C 4D JS 4H 3S
0 0 1 1 1 0
21
4H AH KS 8H TS 9D QD JH 2C 2H KD QH JD 8C 4D 4S KC 9H 2D 3C 7C
1 0 0 0 1 1
21
KS AS 7C QH TD TS 2C 8D 8H 9H 4H 3H 2D QC 3D 4C 5S 6S 5H 3S 4...

output:

3
4
4
4
4

result:

ok 5 lines

Test #17:

score: 0
Accepted
time: 6ms
memory: 5752kb

input:

7
14
3D 7S 9S QS 5H 9H AC 2S TD KH 5D KS JC QC
1 0 0 0 0 0
14
8D 5D AD 2H AC TC JD TS KH JS 3D 2D 8C 9C
0 0 0 0 0 0
15
TS 8H 6S 5S 7C JS 2S 7S 8C AS 8S 5C 4H 4S TH
0 1 0 0 0 0
15
QH 3S JH QD 5S 9C 5C 7H 8D TD QC 5D 2S 5H 7S
1 1 1 0 0 1
16
JS 8C JC 8S 9H AC 3C 4D 5C 8D JH 7S 4S QH 9D 9C
1 0 0 0 0 0
1...

output:

2
1
2
3
2
2
3

result:

ok 7 lines

Test #18:

score: 0
Accepted
time: 0ms
memory: 5692kb

input:

1
36
AH 2H 3H 4H 5H 6H 7H 8H 9H AC 2C 3C 4C 5C 6C 7C 8C 9C AD 2D 3D 4D 5D 6D 7D 8D 9D AS 2S 3S 4S 5S 6S 7S 8S 9S
1 1 1 0 0 0

output:

7

result:

ok single line: '7'

Test #19:

score: 0
Accepted
time: 4ms
memory: 5804kb

input:

7
15
3C 9D 8C 6S 5S QS 8D AH 3D 5C TD QD 9S 6C 6D
1 1 1 0 0 0
16
3C 8C JS 3S AC 7D QS KC JH KS AS 2S 9H 4D 2H 5H
0 1 0 0 0 0
14
JS 9H AC 7C KH 5H 4H 2S KC TC 2D QS AD QC
0 0 0 0 1 0
14
JH KH 6H KC 9H TH 2S QS 4S 3S JS 8D 4C AH
1 0 0 0 1 0
15
5D 7S 8S 2C TH TC 5C KD 4C QH 2S 6D 3H AS KS
0 0 0 0 1 0
1...

output:

2
2
2
2
2
3
2

result:

ok 7 lines

Test #20:

score: 0
Accepted
time: 2ms
memory: 6000kb

input:

3
35
8H 8D 3H JD 4S AD KC JC 5D KH QD JH 5C QS 3C 2S 4H 3S 7D AH 8S 6C TS JS KS 6S 7C TH QH 9H 9D 8C AC 6H AS
0 0 1 0 1 0
34
KC AS KS 3S 5H JC TD 2C JS KD 4C 8C AD QS 9D 5S AC 3H 2H 3C QD 9S 6D 4S QC 8H 6C TS 7C 4D 9H 6S QH TC
0 1 0 0 1 1
35
3H 9C 2C 5S TS TC QD AS 8C 5D 4H 6C 7C 9H 6S 7H KS 2S 8D A...

output:

6
6
7

result:

ok 3 lines

Test #21:

score: 0
Accepted
time: 4ms
memory: 6008kb

input:

5
21
TH 9C 5S 9H KD JD JS 3C KH 3S 6S 7D 8S JH 4D 7H 9D 6D KC 7S 4C
1 1 0 1 0 0
20
6C QC 2D 2S 4H QS 8S KD 9H 3H 7H JD 7D KC 2C 5C 8D 7C 4S JC
1 0 0 0 1 1
21
JC 9C 8H 2D TS QH TC 6C 6S 6D 9S 4D KC 7C 4C 5C QD JS 8D AD QC
1 0 0 1 0 0
22
2C 6S 8S JC 9H 8H 4S 8C JD 4H 5S 5H QH 6H 6D 9D KC 7S 2S 3D 8D T...

output:

4
4
3
4
2

result:

ok 5 lines

Test #22:

score: 0
Accepted
time: 61ms
memory: 5804kb

input:

2
52
AH AD AC AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 7S 8H 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH JD JC JS QH QD QC QS KH KD KC KS
1 1 1 1 1 1
52
AC AH AD AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 7S 8H 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH J...

output:

10
10

result:

ok 2 lines

Test #23:

score: 0
Accepted
time: 54ms
memory: 5720kb

input:

3
52
AH AD AC AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 7S 8H 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH JD JC JS QH QD QC QS KH KD KC KS
1 1 1 1 1 1
51
AC AH AD AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 7S 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH JD J...

output:

10
10
0

result:

ok 3 lines

Test #24:

score: 0
Accepted
time: 55ms
memory: 5804kb

input:

4
52
AH AD AC AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 7S 8H 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH JD JC JS QH QD QC QS KH KD KC KS
1 1 1 1 1 1
1
JD
1 1 1 1 1 1
50
AC AH AD AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 8D 8C 8S 9H 9D 9C 9S TH TD...

output:

10
0
10
0

result:

ok 4 lines

Test #25:

score: 0
Accepted
time: 40ms
memory: 5940kb

input:

13
52
AH AD AC AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 7S 8H 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH JD JC JS QH QD QC QS KH KD KC KS
1 1 1 1 1 1
1
JD
1 1 1 1 1 1
41
AC AD AS 2H 2C 2S 3H 3C 4H 4D 4C 5H 5D 5S 6D 6S 7H 7D 7C 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH JD JS QH QD Q...

output:

10
0
8
0
0
0
0
0
0
0
0
0
0

result:

ok 13 lines

Test #26:

score: 0
Accepted
time: 86ms
memory: 5724kb

input:

5
52
AH AD AC AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 7S 8H 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH JD JC JS QH QD QC QS KH KD KC KS
1 1 1 1 1 1
26
AH AD 2C 2S 3H 3D 4C 4S 5H 5D 6C 6S 7H 7D 8C 8S 9H 9D TC TS JH JD QC QS KH KS
1 1 1 1 1 1
13
7H 7D 8C 8S 9H 9D TC TS JH JD Q...

output:

10
5
2
1
1

result:

ok 5 lines

Extra Test:

score: 0
Extra Test Passed