难点在审题, 每张牌不放回的取出, 用ump+set来存放有序的同色牌, 然后拷贝到vector中比较

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

using pii=pair<int,int>;
int main() {
    int T;
    unordered_map<char,set<pii>> groups;
    cin>>T;
    while(T--)
    {
        int num,count;
        char kind;
        cin>>num>>count>>kind;
        groups[kind].insert({num,count});
    }
    long long result=0;
    for(auto& st:groups)
    {
        vector<pii> nums(st.second.begin(),st.second.end());
        int n=nums.size();
        for(int i=0;i<n-4;++i)
        {
            // int minCount=nums[i].second;
            if(nums[i].first+4==nums[i+4].first)
            {
                // for(int j=1;j<=4;++j)
                // minCount=min(minCount,nums[j].second);
                int minCount=min_element(nums.begin()+i,nums.begin()+i+5,[](auto& pii1,auto& pii2){return pii1.second<pii2.second;})->second;
                for_each(nums.begin()+i,nums.begin()+i+5,[&](auto& p){p.second-=minCount;});
                result+=minCount;
            }
            
        }
        // for(auto &itr:st.second)cout<<itr<<endl;
    }
    cout<<result<<endl;
}
// 64 位输出请用 printf("%lld")