#include "september.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
int ans = 0;
int check (vector<int> &v, vector<int> &perm) {
set<int> s1, s2;
int k = 0;
for (int i = 0; i < v.size(); i++) {
s1.insert(v[i]);
s2.insert(perm[i]);
if (s1 == s2) k++;
}
return k;
}
void permutation (vector<int> graph, vector<int> perm, vector<int> &v) {
if (perm.size() == graph.size()-1) {
ans = max(ans, check(v, perm));
return;
}
vector<bool> occ(v.size()+1, 0);
for (int i = 1; i < graph.size(); i++)
occ[graph[i]] = 1;
for (int i = 1; i <= v.size(); 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, v);
}
}
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
ans = 0;
permutation(F, {}, S[0]);
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |