B.フェニックスと美
CF1348 B
質問の意味:
指定されたサイズはnnですn aaの配列a、1 ... n 1 ... nのサイズを挿入する必要があります1 。。。N-すべての長さの数KKkのサブシーケンスは同じです。
-1を出力することはできません。そうでない場合、挿入されたシーケンスが出力されます。
アイデア:
手で押して、ループ配列を構成していることを確認します。
既存の配列の最小ループセクション(出現した数の数)がkkより大きい場合k、出力− 1 -1− 1。
それ以外の場合、出力m ∗ nm * nメートル∗n:元の配列aaa各要素はループセクションを占め、ループセクションは順番に出力されます。
int main(){
int t=ird();
int n,m,a,b;
while(t--){
map<int,int> mp,vis;
n=ird();m=ird();b=0;
for(int i=1;i<=n;i++){
a=ird();
mp[a]++;if(mp[a]==1){
vis[++b]=a;}
}
if(b>m){
cout<<-1<<endl;continue;}
if(m>b){
while(b!=m){
vis[++b]=n;
}
}
cout<<m*n<<endl;
for(int i=1;i<=n;i++){
for(int j=m;j>=1;j--)
cout<<vis[j]<<" ";
}
cout<<endl;
}
}