题意:给你的n个数 问是否存在k个不同的数,如果存在输出这k个数的下标 佛则输出NO
题解:遍历一遍这个数组 并用vis标示当前值有木有出现 如果没有出现过就把他的下标加入到我们的数组中,如果数组中的元素够k个输出,如果最后都不够就输出no
#include<bits/stdc++.h>
using namespace std;
int vis[105];
int a[105];
vector<int>ans;
int main()
{
int n,k;
memset(vis,0,sizeof(vis));
cin >> n >> k;
for(int i = 0; i < n; i++)
{
int x;
cin >> a[i];
}
for(int i = 0; i < n; i++)
{
if(!vis[a[i]])
{
ans.push_back(i + 1);
vis[a[i]] = 1;
if(ans.size() == k)
{
break;
}
}
}
if(ans.size()!=k)
{
cout << "NO" << endl;
}
else
{
cout << "YES" << endl;
cout << ans[0];
for(int i = 1; i < k; i++)
{
cout << " " << ans[i] ;
}
cout << endl;
}
return 0;
}