Submission #96491

#TimeUsernameProblemLanguageResultExecution timeMemory
96491CamaroesDEL13 (info1cup18_del13)C++14
15 / 100
1091 ms504 KiB
#include <iostream> #include <vector> using namespace std; void monstro(vector<int> &city, const vector<int> &dad, vector<int> &order, bool &pr) { if(city.size() == dad.size()) { if(city == dad) { cout << order.size() << "\n"; for(auto x : order) { cout << x << " "; } cout << "\n"; pr = true; return; } else return; } else { for(unsigned int k = 1; k < city.size() - 1; k++) { order.push_back(city[k]); vector<int> cityy = city; cityy.erase(cityy.begin() + (k + 1)); cityy.erase(cityy.begin() + (k - 1)); monstro(cityy, dad, order, pr); order.pop_back(); if(pr) k = city.size(); } } return; } int main() { int t; cin >> t; for(int i = 0; i < t; i++) { int n, q; cin >> n >> q; vector<int> city(n, 0); for(int j = 0; j < n; j++) city[j] = j + 1; vector<int> dad(q, 0); for(int j = 0; j < q; j++) cin >> dad[j]; if(((n - q) % 2 != 0) || (n < q)) cout << -1 << "\n"; else { vector<int> p; bool pr = false; monstro(city, dad, p, pr); if(!pr) cout << -1 << "\n"; } } return 0; }
#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...