输入
第一行包含两个整数,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
第一行包含两个整数,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; }