Codeforces Round #429 (Div 2) A

本文介绍了一个基于抽屉原理解决气球分配问题的方法。通过输入气球数量和朋友数量,以及每只气球的颜色,判断是否可以将所有气球分配给朋友,且确保没有朋友收到两只相同颜色的气球。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A. Generous Kefa

One day Kefa found n baloons. For convenience, we denote color of i-th baloon as si — lowercase letter of the Latin alphabet. Also Kefa has k friends. Friend will be upset, If he get two baloons of the same color. Kefa want to give out all baloons to his friends. Help Kefa to find out, can he give out all his baloons, such that no one of his friens will be upset — print «YES», if he can, and «NO», otherwise. Note, that Kefa’s friend will not upset, if he doesn’t get baloons at all.

Input

The first line contains two integers n and k (1 ≤ n, k ≤ 100) — the number of baloons and friends.
Next line contains string s — colors of baloons.

Output

Answer to the task — «YES» or «NO» in a single line.
You can choose the case (lower or upper) for each letter arbitrary.

Examples

input
4 2
aabb
output
YES
input
6 3
aacaab
output
NO

【解题报告】
抽屉原理

代码如下:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 100010

int n,k,num[N];  
char st[N];  
bool flag=true;  

int main()
{  
    scanf("%d%d",&n,&k);  
    scanf("%s",st);  
    for(int i=0;i<strlen(st);++i) num[st[i]-'a']++;    
    for(int i=0;i<26;++i) if(num[i]>k) flag=false;    
    puts((!flag)?"NO":"YES");
    return 0;  
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值