fork download
  1. #include <iostream>
  2. #include <map>
  3. #include <algorithm>
  4. #include <string>
  5. #include<vector>
  6. using namespace std;
  7.  
  8.  
  9. multimap<int , string>flip_map(map<string,int> src) {
  10.  
  11. multimap<int , string>dst;
  12.  
  13. for(map<string,int>::const_iterator it = src.begin(); it != src.end(); ++it)
  14. dst.insert(pair<int , string>(it -> second, it -> first));
  15.  
  16. return dst;
  17. }
  18.  
  19.  
  20. map<string,int>::iterator it;
  21. int main() {
  22. int t;
  23. string str, str1 , str2 , str3;
  24. int a ,b;
  25.  
  26. cin>>t ;
  27. for ( int i=0 ; i<t ; i++)
  28. {map<string ,int > mp;
  29. cin >> a >>b;
  30. for ( int j=0 ; j<a ; j++)
  31. {
  32. cin>>str;
  33. if ( str=="liked")
  34. {
  35. str1 ="";
  36. cin>>str2;
  37. while(str2 != "photo") {
  38. str1 = str1 + str2 ;
  39. cin>>str2 ;
  40. if(str2!="photo")
  41. str1 = str1 + " " ;
  42. }
  43. ++mp[str1];
  44. }
  45. else
  46. {
  47. cin>>str3 ;
  48. str1 ="";
  49. cin>>str2;
  50. while(str2 != "photo") {
  51. str1 = str1 + str2 ;
  52. cin>>str2 ;
  53. if(str2!="photo")
  54. str1 = str1 + " " ;
  55. }
  56. ++mp[str1];
  57. }
  58. }
  59. multimap<int, string> reverseTest = flip_map(mp);
  60. // sort ( mp.begin() , mp.end());
  61. multimap<int, string>::const_reverse_iterator it = reverseTest.rbegin();
  62. cout<<"Case "<<i+1<<":"<<endl;
  63. for( int k=0; k<b ; k++)
  64. {string ss=it->second ;
  65. for ( int u=0 ; u<ss.size()-2 ; u++)
  66. cout << ss[u];
  67. cout<<endl;
  68. ++it;
  69. }
  70.  
  71. }
  72. // your code goes here
  73. return 0;
  74. }
Success #stdin #stdout 0s 3440KB
stdin
2
6 3
liked hinb Badr's photo
liked Shakira's photo
liked hinb Badr's photo
liked Fegla's photo
liked Shakira's photo
commented on Shakira's photo
6 3
liked a's photo
liked b's photo
liked a's photo
liked c's photo
liked b's photo
commented on b's photo
stdout
Case 1:
Shakira
hinb Badr
Fegla
Case 2:
b
a
c