フェニックスと美[CF1348 B](構造、水)

B.フェニックスと美

CF1348 B
質問の意味:
指定されたサイズはnnですn aaの配列a1 ... n 1 ... nのサイズを挿入する必要があります1 N-すべての長さの数KKkのサブシーケンスは同じです。
-1を出力することはできません。そうでない場合、挿入されたシーケンスが出力されます。
アイデア:
手で押して、ループ配列を構成していることを確認します。
既存の配列の最小ループセクション(出現した数の数)がkkより大きい場合k、出力− 1 -11
それ以外の場合、出力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;
    }
}

おすすめ

転載: blog.csdn.net/weixin_44986601/article/details/105930410
おすすめ