B - Planning The Expedition
枚举天数,从小到大枚举,第一个不符合的就是最大的天数
#include<bits/stdc++.h>
using namespace std;
map<int,int>mp;
int num[105]={0};
int main()
{
int n,m;
cin>>n>>m;
map<int,int>::iterator it;
mp.clear();
for(int i=1;i<=m;i++)
{
int a;
cin>>a;
mp[a]++;
}
int maxx=0;
int flag;
for(int i=1;i<=1000;i++)
{
for(int j=1;j<=n;j++)
{
flag=0;
for( it=mp.begin();it!=mp.end();it++)
{
if((it->second-num[it->first])>=i)
{
num[it->first]+=i;
flag=1;
break;
}
}
if(!flag)
break;
}
if(!flag)
break;
maxx++;
memset(num,0,sizeof(num));
}
cout<<maxx<<endl;
return 0;
}