#include "bits/stdc++.h"
using namespace std;
#ifdef debug
#include "debug.hpp"
#else
#define dbg(...)
#define dbgx(x)
#define line()
#endif
#define int long long
#define vi vector<int>
#define vvi vector<vi>
#define pii pair<int, int>
#define size(x) (int)(x.size())
const int N = 25;
int n, m, p;
vi adj[N];
vi force(N);
int ans = 0;
void dfs(int u, set<int> st) {
for (int &v : adj[u]) {
set<int> nw = st;
nw.insert(v);
dfs(v, nw);
}
bool ok = true;
for (int i = 1; i <= p; ++i) {
if (st.find(force[i]) == st.end())
ok = false;
}
if (ok == true) ++ans;
}
void _() {
cin >> n >> m >> p;
for (int i = 1; i <= p; ++i)
cin >> force[i];
while (m--) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
}
dfs(1, {1});
cout << ans << '\n';
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
// freopen("in.txt", "r", stdin);
int t = 1;
// cin >> t;
for (int cs = 1; cs <= t; ++cs) {
_();
}
return 0;
}
| # | 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... |