Submission #494727

#TimeUsernameProblemLanguageResultExecution timeMemory
494727dannyboy20031204DEL13 (info1cup18_del13)C++17
0 / 100
68 ms5016 KiB
#include <bits/stdc++.h> #define ll long long #define fi first #define se second #define mp make_pair using namespace std; void db() {cout << endl;} template <typename T, typename ...U> void db(T a, U ...b) { //return; cout << a << ' ', db(b...); } #ifdef Cloud #define file freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout) #else #define file ios::sync_with_stdio(false); cin.tie(0) #endif const int N = 3001; void solve(){ int n, q; cin >> n >> q; bool stay[n + 1]{}; for (int p, i = 0; i < q; i++) cin >> p, stay[p] = 1; set<pair<int, int>> s; for (int i = 1; i <= n; i++) s.insert({i, stay[i]}); deque<int> ans; for (auto i : s){ if (i.se == 0) { auto it = s.upper_bound(i); auto it2 = s.lower_bound(i); if (it == s.end() or it2 == s.begin()) continue; it2--; auto u = *it2, v = *it; if (u.se or v.se) continue; ans.push_back(i.fi); s.erase(u); s.erase(v); } else for (int t = 0; t < 2; t++){ auto it = s.upper_bound(i); auto it2 = s.lower_bound(i); if (it == s.end() or it2 == s.begin()) continue; it2--; auto u = *it2, v = *it; if (u.se or v.se) continue; ans.push_back(i.fi); s.erase(u); s.erase(v); } } vector<int> v; for (auto i : s) if (i.se == 0) v.push_back(i.fi); if (!v.empty() and v.size() != 2) return void(cout << -1 << '\n'); if (!v.empty() and v[0] != v[1] - 1) return void(cout << -1 << '\n'); if (!v.empty() and (v[0] == 0 or stay[v[0] - 1])) return void(cout << -1 << '\n'); if (!v.empty()) ans.push_front(v[0]); cout << ans.size() << '\n'; for (int i : ans) cout << i << ' '; cout << '\n'; } signed main(){ file; int t; cin >> t; while (t--) solve(); }
#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...