Submission #1203682

#TimeUsernameProblemLanguageResultExecution timeMemory
1203682fadyscube9월 (APIO24_september)C++20
35 / 100
1095 ms330508 KiB
#include "september.h" #include <vector> #include <bits/stdc++.h> using namespace std; int ans = 0; int check (vector<vector<int>> &S, vector<int> &perm) { int k = 0; set<int> s; vector<set<int>> ss(S.size()); for (int i = 0; i < perm.size(); i++) { s.insert(perm[i]); bool yes = true; for (int j = 0; j < S.size(); j++) { ss[j].insert(S[j][i]); if (ss[j] != s) yes = false; } if (yes) k++; } return k; } void permutation (vector<int> graph, vector<int> perm, vector<vector<int>> &S) { if (perm.size() == graph.size()-1) { ans = max(ans, check(S, perm)); return; } vector<bool> occ(graph.size(), 0); for (int i = 1; i < graph.size(); i++) occ[graph[i]] = 1; for (int i = 1; i <= graph.size()-1; i++) { if (occ[i]) continue; vector<int> tmp = perm; tmp.push_back(i); vector<int> tmp_graph = graph; tmp_graph[i] = i; permutation(tmp_graph, tmp, S); } } int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) { ans = 0; permutation(F, {}, S); return ans; }
#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...
#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...