L2-3インベントリコードベース[STL]

L2-3インベントリコードベース[STL]

ここに画像の説明を挿入

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

#define int long long

int n,m;
struct Node{
    
    
    vector<int> v;
    int note;
};

vector<Node> v;
vector<int> vv;

map<vector<int>,int> mp;

bool cmp(Node a,Node b){
    
    
    if(a.note == b.note)
        return a.v < b.v;
    return a.note > b.note;
}

signed main(){
    
    
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    int p;
    for(int i = 1;i <= n;++i){
    
    
        vv.clear();
        for(int j = 1;j <= m;++j){
    
    
            cin>>p;
            vv.push_back(p);
        }
        mp[vv]++;
    }
    for(map<vector<int>,int>::iterator it = mp.begin();it != mp.end();++it){
    
    
        v.push_back({
    
    it->first,it->second});
    }
    sort(v.begin(),v.end(),cmp);
    cout<<v.size()<<"\n";
    for(int i = 0;i < v.size();++i){
    
    
        cout<<v[i].note;
        for(int j = 0;j < v[i].v.size();++j)
            cout<<" "<<v[i].v[j];
        cout<<"\n";
    }
    return 0;
}

おすすめ

転載: blog.csdn.net/qq_45985728/article/details/123749085