Submission #496886

#TimeUsernameProblemLanguageResultExecution timeMemory
496886abc864197532DEL13 (info1cup18_del13)C++17
0 / 100
7 ms1100 KiB
#include <bits/stdc++.h> using namespace std; #define lli long long int #define mp make_pair #define eb emplace_back #define pb push_back #define X first #define Y second #define pii pair<int,int> #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() void abc() {cout << endl;} template <typename T, typename ...U> void abc(T i, U ...j) { cout << i << ' ', abc(j...); } template <typename T> void printv(T l, T r) { for (; l != r; ++l) cout << *l << " \n"[l + 1 == r]; } #ifdef Doludu #define test(x...) abc("[" + string(#x) + "]", x); #else #define test(x...) void(0); #endif const int N = 1001; int main () { ios::sync_with_stdio(false); cin.tie(0); int t; cin >> t; while (t--) { int n, m; cin >> n >> m; vector <int> a(m + 1, 0); vector <int> rem; for (int i = 1; i <= m; ++i) { cin >> a[i]; rem.pb(a[i] - a[i - 1] - 1); } rem.pb(n - a[m]); vector <int> move, fr; int pre = 0; bool fail = false; for (int i = 1; i <= m; ++i) { if (!rem[i - 1]) { pre = 0; continue; } if (rem[i - 1] & 1) { // must 1 pre = 1; rem[i - 1] -= pre, rem[i] -= pre; move.pb(i - 1); } else if (!pre) { // must 2 pre = 2; rem[i - 1] -= pre, rem[i] -= pre; move.pb(i - 1), move.pb(i - 1); } else { pre = 0; } } for (int i = 0; i <= m; ++i) if (rem[i] < 0) fail = true; if (fail || (rem[m] - pre) & 1) { cout << -1 << endl; } else { cout << 0 << endl; } } }
#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...