Submission #1304769

#TimeUsernameProblemLanguageResultExecution timeMemory
1304769tuncay_pashaShell (info1cup18_shell)C++20
0 / 100
415 ms716 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...