题目链接
题目大意:给定n个字符串,输出每个字符串出现的行号,字符串按字典序倒序输出,行号正序输出。
思路:定义一个map<string,vector
本题难度约为NOIPD1T1,普及/提高-。
#include<map>
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
map<string,vector<int> >M;
map<string,vector<int> >::reverse_iterator iter;
string s;
int n,m;
int main(){
ios::sync_with_stdio(false);
cin>>n>>m;
for(register int i=1;i<=n;i++){
cin>>s;
M[s].push_back(i);
}
for(iter=M.rbegin();iter!=M.rend();++iter,cout<<'\n'){
sort(iter->second.begin(),iter->second.end());
cout<<iter->first<<" ";
for(register int i=0;i<iter->second.size();i++)cout<<iter->second[i]<<" ";
}
}