2 solutions
-
0
#include <bits/stdc++.h> using namespace std; const int N = 15; vector<int> cards[N]; int ver[N]; map<char, int> s; void get() { // 对于当前的所有牌做映射 for(int i = 2; i <= 9; i ++ ) { int c = '0' + i; s[c] = i; } s['A'] = 1, s['J'] = 11, s['Q'] = 12, s['K'] = 13, s['0'] = 10; } int main() { get(); for(int i = 1; i <= 13; i ++ ) for(int j = 0; j < 4; j ++ ) { char c[2]; cin >> c; cards[i].push_back(s[c[0]]); } //模拟题目的操作置换牌 for(int i = 0; i < 4; i ++ ) { int t = cards[13][i]; while(t != 13) { int r = cards[t].back(); cards[t].pop_back(); ver[t] ++ ; t = r; } } int ans = 0; //如果当前牌是被开出四次,就累加进入答案 for(int i = 1; i <= 13; i ++ ) ans += (ver[i] >= 4); cout << ans << endl; return 0; }
Information
- ID
- 527
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- (None)
- # Submissions
- 13
- Accepted
- 2
- Uploaded By