cf-多元化团队

输入
第一行包含两个整数,n和k 1≤k≤n≤100学生人数和你必须组建的团队的规模
第二行包含n整数a1,a2,…,an (1≤ai≤100),对ai的评价
输出量
如果不可能组成一个合适的团队,就打印出来“否“(没有引号)。否则打印“是“,然后打印k不同整数1到n这应该是你所组成的团队中学生的指标。团队中所有学生的评分都应该是不同的。您可以按任何顺序打印索引。如果有多个答案,请打印其中任何一个。
假设学生是从1到n.
实例
输入复制
5 3
15 13 15 15 12
输出量复制
YES
1 2 5 
输入复制
5 4
15 13 15 15 12
输出量复制
NO
输入复制
4 4
20 10 40 30
输出量复制
YES

1 2 3 4 

因为上面是将英文翻译过来的,有点那个不清楚,但应该能懂题目的意思吧

注意:为了寻找不同的,需要标记一下那些相同的,使他们为0,到时候就可以输出那些不同的了。

请看下面代码吧:

#include<stdio.h>
int main()
{
	int n, k, i, j, a[100],t=0;            //t为所选人数 
	scanf("%d%d", &n, &k);                //总共n个人,团队k个人 
	for (i = 0; i < n; i++)
		scanf("%d", &a[i]);
	for (i = 0; i < n - 1; i++)
		for (j = i + 1; j < n; j++)
			if (a[i] == a[j] && a[i])
				a[j] = 0;                 //使团队的剩下相同量为0做标记 
	
	for ( i = 0; i<n; i++)
	{
		if (a[i])
			t++;
	}
	if (t < k)
		printf("NO\n");
	else
	{
		printf("YES\n");
		for (i = 0,j=0; i < n; i++)
			if (a[i]&&j<k)
			{
				printf("%d ", i + 1);
				j++;
			}
	}
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值