Submission #96156

#TimeUsernameProblemLanguageResultExecution timeMemory
96156alextodoranDEL13 (info1cup18_del13)C++14
15 / 100
7 ms1272 KiB
#include <bits/stdc++.h>

#define NM 100002

using namespace std;

int t;

int n, q;

int p[NM];
int x[NM];

vector <int> op;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> t;
    while(t--)
    {
        cin >> n >> q;
        for(int i = 1; i <= q; i++)
            cin >> p[i];
        op.clear();
        p[q + 1] = n + 1;
        for(int i = 0; i <= q; i++)
            x[i] = p[i + 1] - p[i] - 1;
        for(int i = 0; i <= q; i++)
        {
            int mid = p[i] + (x[i] + 1) / 2;
            while(x[i] > 2)
            {
                op.push_back(mid);
                x[i] -= 2;
            }
        }
        for(int i = 1; i <= q; i++)
            if(x[i - 1] == x[i])
            {
                while(x[i])
                {
                    x[i]--;
                    x[i - 1]--;
                    op.push_back(p[i]);
                }
            }
        bool ok = 1;
        for(int i = 0; i <= q; i++)
            if(x[i] > 0)
            {
                ok = 0;
                break;
            }
        if(ok)
        {
            cout << op.size() << "\n";
            for(auto i : op)
                cout << i << " ";
            cout << "\n";
        }
        else
            cout << "-1\n";
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...