Submission #494084

#TimeUsernameProblemLanguageResultExecution timeMemory
494084Jeff12345121Fishing Game (RMI19_fishing)C++14
0 / 100
2089 ms556 KiB
#include <bits/stdc++.h> #define sz(z) ( (int)z.size() ) using namespace std; ifstream in("in.in"); ofstream out("out.out"); int n,c[10],sol = 0; bool discard(vector<int> &v) { bool eliminated = false; for (int i = 0; i + 1 < sz(v); i++) { for (int j = i + 1; j < sz(v); j++) { if (v[i] == v[j]) { swap(v[i] , v[sz(v) - 1]); v.pop_back(); swap(v[j] , v[sz(v) - 1]); v.pop_back(); eliminated = true; } } } return eliminated; } void back(int round, vector<int> v[3], bool eliminated) { int mround = round % 3; if (mround == 0 && eliminated == 0) { sol++; return; } else if (sol == 0) eliminated = 0; int l = mround, r = (mround + 1) % 3; if (sz(v[l]) == 0) { back(round + 1 , v , eliminated); } else { for (int i = 0; i < sz(v[l]); i++) { vector<int> newv[3] = {v[0] , v[1] , v[2]}; int x = newv[l][i]; swap(newv[l][i] , newv[l][sz(newv[l]) - 1]); newv[l].pop_back(); newv[r].push_back(x); eliminated = discard(newv[r]); back(round + 1, newv, eliminated); } } // cout << "\n"; } int main() { int t; cin >> t; while (t--) { cin >> n; vector<int> v[3]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 2 * n; j++) { int x; cin >> x; v[i].push_back(x); } } sol = 0; for (int i = 0; i < 3; i++) discard(v[i]); back(0 , v , 1); // cout << "\n"; cout << sol << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...