//
#include<bits/stdc++.h>
using namespace std;
// 之前一直想着 重载 map 的运算符 来实现
// 现在发现 重载运算符 只能改变 key 的排序规则 T_T
map< vector<int>,int > mp;
vector< pair< vector<int>,int > > vp;
vector<int> v;
bool cmp( const pair< vector<int>,int >& x,const pair< vector<int>,int >& y )
{
return ( x.second == y.second ) ? ( x.first < y.first ) : ( x.second > y.second ) ;
}
int main()
{
int n,m,i,j,x;
while( cin>>n>>m )
{
vp.clear();
while( n-- )
{
v.clear();
for( i=0;i<m;i++ )
{
cin>>x; v.push_back( x );
}
mp[v]++;
}
vp.insert( vp.end(),mp.begin(),mp.end() );
sort( vp.begin(),vp.end(),cmp );
// 放负数可直接从大到小排
cout<<vp.size()<<endl;
for( i=0;i<vp.size();i++ )
{
cout<<vp[i].second;
v=vp[i].first;
for( j=0;j<v.size();j++ ) cout<<" "<<v[j];
cout<<endl;
}
}
return 0;
}
PTA_L2-039 清点代码库 (25 分)_map_vector
猜你喜欢
转载自blog.csdn.net/qq_63173957/article/details/124384290
今日推荐
周排行