Submission #637067

#TimeUsernameProblemLanguageResultExecution timeMemory
637067Dec0DeddDEL13 (info1cup18_del13)C++14
0 / 100
9 ms468 KiB
#include <bits/stdc++.h> using namespace std; const int N = 200+1; int d[N], rm[N]; void solve() { int n, q; cin>>n>>q; if (q == 0) { cout<<0<<"\n"; return; } for (int i=0; i<=n; ++i) d[i]=rm[i]=0; vector<int> v; v.push_back(0); for (int i=0; i<q; ++i) { int p; cin>>p; v.push_back(p); } q+=2, v.push_back(n+1); for (int i=1; i<q; ++i) d[i]=v[i]-v[i-1]-1; for (int i=1; i<q-1; ++i) { if (d[i]&1) --d[i], --d[i+1], ++rm[i], ++rm[i+1]; else if (d[i] > 0 && d[i+1] > 0) { d[i]-=2, d[i+1]-=2, rm[i]+=2, rm[i+1]+=2; } } bool ok=true; for (int i=1; i<q; ++i) { if ((d[i]&1) || d[i] < 0) ok=false; if (d[i]%2 == 0 && d[i] > 0 && rm[i] == 0) ok=false; } if (!ok) { cout<<-1<<"\n"; } else { cout<<0<<"\n"; } } int main() { 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...