Submission #229238

#TimeUsernameProblemLanguageResultExecution timeMemory
229238MetBBurza (COCI16_burza)C++14
0 / 160
104 ms61048 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; #define N 1000003 using namespace std; typedef long long ll; typedef unsigned long long ull; const ll INF = 1e18, MOD = 1e9 + 7, MOD2 = 1e6 + 3; int n, k, ptr, d[20][(1 << 21)]; vector <int> g[N]; vector < pair <int, int> > v[100]; pair <int, int> dfs (int x, int p, int h) { if (h == k) { if (h) v[++ptr].push_back ({ptr, h - 1}); return {ptr, ptr}; } int l = 0, r; for (int to : g[x]) { if (to != p) { auto a = dfs (to, x, h + 1); if (!l) l = a.first; r = a.second; } } if (h && l) v[r].push_back ({l, h - 1}); return {l, r}; } int main () { cin >> n >> k; for (int i = 0; i < n - 1; i++) { int a, b; cin >> a >> b; a--, b--; g[a].push_back (b); g[b].push_back (a); } if (k * k >= n) { cout << "DA"; return 0; } dfs (0, -1, 0); d[0][0] = 1; for (int i = 1; i <= ptr; i++) { for (int j = 0; j < (1 << k); j++) { for (auto a : v[i]) { if (j & (1 << a.second)) { d[i][j] |= d[a.first - 1][j ^ (1 << a.second)]; } } } } for (int j = 0; j < (1 << k); j++) if (d[ptr][j]) { cout << "DA"; return 0; } cout << "NE"; }

Compilation message (stderr)

burza.cpp: In function 'std::pair<int, int> dfs(int, int, int)':
burza.cpp:38:14: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
  return {l, r};
              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...