CodeForces 12C - Fruits

还是sort,然后自己想怎么存储数据,想了一会!先用map来存,然后把map获取到的int型数据,再存进了num这个数组!题意明确!
#include <iostream>
#include <algorithm>
#include <map>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;
int comp(int a,int b)
{
  return a>b;
}
int main()
{
  map<string,int> m1;
  int num[105];
  int n,m,arr[105];
  memset(num,0,sizeof(num));
  cin>>n>>m;
  for(int i=0;i<n;++i)
    cin>>arr[i];
  sort(arr,arr+n);
  string tmp;
  for(int i=0;i<m;++i)
  {
     cin>>tmp;
     m1[tmp]++;
  }
  int j=0;
  for(map<string,int>::iterator it=m1.begin();it!=m1.end();it++)
     num[j++]=it->second;
   sort(num,num+m,comp);
   int low=0,high=0;
   for(int i=0;i<m;++i)
      low+=num[i]*arr[i];
    for(int i=n-1,j=0;j<m;++j,--i)
       high+=num[j]*arr[i];
  printf("%d %d\n",low,high);
  return 0;
}

你可能感兴趣的:(map,sort,codeforces)