一天魏学姐给实验室的小伙伴买了很多冰淇淋,他要给小伙伴们分这些冰淇淋,魏学姐自己不吃,小伙伴被分到什么就全吃掉。
冰淇淋有很多口味,实验室的小伙伴们都很挑剔,每个人对每个口味的冰淇淋可以不吃或者只吃一个。
如果一个人吃两个同样口味的冰淇淋会吃腻,不开心。
如果有冰淇淋没有被分给小伙伴,浪费掉了,小伙伴们也不开心。
Input
第一行是两个数字m,n,魏学姐买了m个冰淇淋,实验室除了魏学姐一共有n人
第二行是m个字符(区分大小写),代表魏学姐买的冰淇淋,每种字符代表一种冰淇淋
Output
如果没有小伙伴不开心,输出"YES"
如果有一个小伙伴不开心,输出"NO"
Example
Input
4 2
aabb
Output
YES
Input
6 3
aacaab
Output
NO
Note
第一组样例,魏学姐可以给第一个小伙伴第一个和第三个冰淇淋,给第二个小伙伴第二个和第四个冰淇淋
第二组样例,魏学姐无法让每个人都开心,输出"NO"
解析:需要记录每一种冰淇淋的个数,找出最大数,如果最大数大于n,输出“NO”,反之输出“YES”;
之所以写着这题,是因为之前比赛没有做出来,其实是一道很简单的思维题,今天想起来补一下,以前真的啥都不会~~~
#include<bits/stdc++.h>
using namespace std;
const int M=1e5+10;
char a[M];
int b[M];
int main()
{
int m,n;
scanf("%d%d",&m,&n);
getchar();
scanf("%s",a);
int l=strlen(a);
int ans=0;
for(int i=0;i<l;i++){
b[a[i]-'0']++;
ans=max(ans,b[a[i]-'0']);
}
if(ans>n) puts("NO");
else puts("YES");
return 0;
}