This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define NM 100002
using namespace std;
int t;
int n, q;
int p[NM];
int x[NM], y[NM];
deque <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];
p[q + 1] = n + 1;
while(!op.empty())
op.pop_front();
for(int i = 0; i <= q; i++)
x[i] = y[i] = p[i + 1] - p[i] - 1;
for(int i = 1; i <= q; i++)
while(x[i] && x[i - 1])
{
x[i]--;
x[i - 1]--;
op.push_back(p[i]);
}
for(int i = 0; i <= q; i++)
{
if(y[i] - x[i] == 0)
continue;
int mid = p[i] + (y[i] + 1) / 2;
while(x[i] > 1)
{
op.push_front(mid);
x[i] -= 2;
}
}
bool ok = 1;
for(int i = 0; i <= q; i++)
if(x[i] > 0)
{
ok = 0;
break;
}
if(ok)
{
cout << op.size() << "\n";
while(!op.empty())
{
cout << op.front() << " ";
op.pop_front();
}
cout << "\n";
}
else
cout << "-1\n";
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |