Submission #823368

#TimeUsernameProblemLanguageResultExecution timeMemory
823368Desh03Paths (BOI18_paths)C++17
100 / 100
346 ms58976 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n, m, k; cin >> n >> m >> k; vector<int> c(n); vector<vector<int>> g(n); vector f(1 << k, vector<long long> (n)); for (int i = 0; i < n; i++) { cin >> c[i]; --c[i]; ++f[1 << c[i]][i]; } for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; --u, --v; g[u].push_back(v); g[v].push_back(u); } long long ans = 0; for (int i = 0; i < (1 << k); i++) { for (int u = 0; u < n; u++) { for (int v : g[u]) { if (i >> c[v] & 1 ^ 1) { f[i | (1 << c[v])][v] += f[i][u]; } } ans += f[i][u]; } } cout << ans - n << '\n'; return 0; }

Compilation message (stderr)

paths.cpp: In function 'int main()':
paths.cpp:29:31: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
   29 |                 if (i >> c[v] & 1 ^ 1) {
      |                     ~~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...