Submission #858525

#TimeUsernameProblemLanguageResultExecution timeMemory
858525serifefedartarPaths (BOI18_paths)C++17
23 / 100
3066 ms4252 KiB
#include <bits/stdc++.h> using namespace std; #define fast ios::sync_with_stdio(0);cin.tie(0); #define s second #define f first typedef long long ll; const ll MOD = 998244353; const ll LOGN = 18; const ll INF = 1e15; const ll MAXN = 3e5 + 5; vector<vector<int>> graph; int t[MAXN]; ll ans = 0; void dfs(int node, int mask_now) { ans++; for (auto u : graph[node]) { if ((1<<t[u]) & mask_now) continue; dfs(u, mask_now | (1<<t[u])); } } int main() { fast int N, M, K, a, b; cin >> N >> M >> K; graph = vector<vector<int>>(N+1, vector<int>()); for (int i = 1; i <= N; i++) cin >> t[i], t[i]--; for (int i = 0; i < M; i++) { cin >> a >> b; graph[a].push_back(b); graph[b].push_back(a); } for (int node = 1; node <= N; node++) dfs(node, 1<<t[node]); cout << ans - N << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...