Submission #1142167

#TimeUsernameProblemLanguageResultExecution timeMemory
1142167MuhammetDEL13 (info1cup18_del13)C++20
12 / 100
1095 ms61672 KiB
#include "bits/stdc++.h" using namespace std; #define SZ(s) (int)s.size() vector <int> v; int n, m; bool tr = 0; map <vector <int>, bool> vis; void f(vector <int> a, vector <int> ans){ if(vis.find(a) != vis.end() or tr) return; if(SZ(a) == n+2){ v = ans; tr = true; return; } vis[a] = true; for(int i = 1; i < SZ(a)-1; i++){ if(a[i-1] != a[i]-1 and a[i+1] != a[i]+1){ for(int x = a[i-1]+1; x < a[i]; x++){ for(int y = a[i]+1; y < a[i+1]; y++){ vector <int> a1; for(auto j : a){ // cout << j << ' '; if(j == a[i]) a1.push_back(x); if(j == a[i+1]) a1.push_back(y); a1.push_back(j); } // cout << '\n'; // for(auto j : a1){ // cout << j << ' '; // } // cout << '\n'; vector <int> ans1 = ans; ans1.push_back(a[i]); f(a1,ans1); } } } } } void solve(){ cin >> n >> m; vector <int> a(m+1,0); for(int i = 1; i <= m; i++){ cin >> a[i]; } a.push_back(n+1); tr = 0; v.clear(); vis.clear(); // for(auto i : a){ // cout << i << ' '; // } // cout << '\n'; f(a,{}); if(!tr) cout << "-1\n"; else { cout << SZ(v) << '\n'; for(auto i : v){ cout << i << ' '; } cout <<'\n'; } } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); 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...