제출 #84137

#제출 시각아이디문제언어결과실행 시간메모리
84137alextodoranDEL13 (info1cup18_del13)C++14
0 / 100
13 ms3008 KiB
#include <bits/stdc++.h> #define NM 100002 using namespace std; int t; int n, k; int p[NM], d[NM]; vector <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; if(d[i] == 0) d[i] = 0; else if(d[i] % 2 == 1) { for(int j = 1; j <= d[i] / 2; j++) op.push_back(p[i - 1] + d[i] / 2 + 1); d[i] = 1; } else { for(int j = 1; j <= d[i] / 2 - 1; j++) op.push_back(p[i - 1] + d[i] / 2 + 1); d[i] = 2; } } bool ok = 1; 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; if(d[i] > 0) { 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...