Submission #84142

#TimeUsernameProblemLanguageResultExecution timeMemory
84142alextodoranDEL13 (info1cup18_del13)C++14
15 / 100
12 ms1676 KiB
#include <bits/stdc++.h> #define NM 100002 using namespace std; int t; int n, k; int p[NM], d[NM], di[NM]; deque <int> op; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin >> t; while(t--) { cin >> n >> k; op.clear(); p[0] = 0; p[k + 1] = n + 1; for(int i = 1; i <= k; i++) cin >> p[i]; k++; for(int i = 1; i <= k; i++) { d[i] = p[i] - p[i - 1] - 1; di[i] = d[i]; } for(int i = 1; i < k; i++) { int mi = min(d[i], d[i + 1]); for(int j = 1; j <= mi; j++) op.push_back(p[i]); d[i] -= mi; d[i + 1] -= mi; } bool ok = 1; for(int i = 1; i <= k; i++) { if(d[i] == 0 || (di[i] - d[i] > 0 && d[i] % 2 == 0)) { for(int j = 1; j <= d[i] / 2; j++) op.push_front(p[i - 1] + di[i] / 2 + 1); d[i] = 0; } else { ok = 0; break; } } if(ok == 0) cout << "-1\n"; else { cout << op.size() << "\n"; for(auto i : op) cout << i << " "; cout << "\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...