Submission #1319136

#TimeUsernameProblemLanguageResultExecution timeMemory
1319136Muhammad_AneeqDEL13 (info1cup18_del13)C++20
15 / 100
66 ms8332 KiB
#include <bits/stdc++.h> using namespace std; #define ff first #define ss second inline void solve() { int n,m; cin>>n>>m; int a[m]; set<int>s,z; for (int i=1;i<=n;i++) { s.insert(i); z.insert(i); } for (auto &i:a) { cin>>i; s.erase(i); } vector<pair<int,int>>rng; for (int i=1;i<=n;i++) { if (s.find(i)!=s.end()) { int j=i; while (s.find(j)!=s.end()) j++; rng.push_back({i,j-1}); i=j-1; } } if (rng.size()==1) { cout<<-1<<endl;return; } vector<int>ans; int sz=rng.size(); int le=0; for (int i=0;i<sz;i++) { int s=rng[i].ss-rng[i].ff+1; if (le&&rng[i-1].second+1!=rng[i].first-1) { cout<<-1<<endl;return; } int z=(rng[i].ff+rng[i].ss)/2; if (le>s) { cout<<-1<<endl;return; } while (s-2>=le&&s-2>0) { ans.push_back(z); s-=2; } s-=le; while (le--) ans.push_back(rng[i].first-1); le=s; } if (le) { cout<<-1<<endl;return; } cout<<ans.size()<<endl; for (auto i:ans) cout<<i<<' '; cout<<endl; } int main() { ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int t=1; cin>>t; for (int i=1;i<=t;i++) { 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...