Submission #1238649

#TimeUsernameProblemLanguageResultExecution timeMemory
1238649chikien2009Paths (BOI18_paths)C++20
100 / 100
248 ms52064 KiB
#include <bits/stdc++.h> using namespace std; void setup() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); } int n, m, k, a, b, c[300000]; long long f[32][300000], res; vector<int> g[300000]; int main() { setup(); cin >> n >> m >> k; for (int i = 0; i < n; ++i) { cin >> c[i]; c[i]--; f[1 << c[i]][i] = 1; } while (m--) { cin >> a >> b; g[a - 1].push_back(b - 1); g[b - 1].push_back(a - 1); } for (int i = 0; i < (1 << k); ++i) { for (int j = 0; j < n; ++j) { if (i & (1 << c[j])) { a = i - (1 << c[j]); for (auto & z : g[j]) { f[i][j] += f[a][z]; } } res += f[i][j] * (__builtin_popcount(i) >= 2); } } cout << res; 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...