Pagini recente » Cod sursa (job #3270334) | Cod sursa (job #1310905) | Cod sursa (job #416458) | Cod sursa (job #2805160) | Cod sursa (job #2608915)
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
int teste,n,k,v[105],fq[105];
vector <int> nr;
int main()
{
cin>>teste;
while(teste--)
{
cin>>n>>k;
int dif=0;
memset(fq,0,sizeof (fq));
if(n==k)
{
for(int i=1;i<=n;i++)
cin>>v[i];
cout<<n<<"\n";
for(int i=1;i<=n;i++)
cout<<v[i]<<" ";
}
else
{
for(int i=1;i<=n;i++)
{
cin>>v[i];
if(fq[v[i]]==0)dif++;
fq[v[i]]++;
}
if(dif==1)
{
cout<<n<<"\n";
for(int i=1;i<=n;i++)
cout<<v[i]<<" ";
}
if(dif>k)
cout<<"-1";
else
{
nr.clear();
int mx=0,ad=0;
if(dif<k)
ad=k-dif;
for(int i=1;i<=100;i++)
if(fq[i])
{
mx=max(mx,fq[i]);
nr.push_back(i);
}
else if(!fq[i] && ad)
{
--ad;
nr.push_back(i);
dif++;
}
cout<<(mx+1)*dif<<"\n";
for(int i=1;i<=mx+1;i++)
for(int j=0;j<nr.size();j++)
cout<<nr[j]<<" ";
}
}
cout<<"\n";
}
return 0;
}