Submission #199310

#TimeUsernameProblemLanguageResultExecution timeMemory
199310MetBUzastopni (COCI15_uzastopni)C++14
56 / 160
15 ms764 KiB
#include <bits/stdc++.h> #define N 1000001 using namespace std; typedef long long ll; const ll INF = 1e18, MOD = 1e9 + 7, MOD2 = 1e6 + 3; vector <int> g[100], gb[100]; bitset <101> d[100][100]; int vm = 101, v[100], n; void dfs (int x) { int ptr = 0; for (int to : g[x]) { dfs (to); for (int i = 0; i < vm; i++) { d[x][i] |= d[to][i]; } } for (int i = vm - 1; i >= 0; i--) { for (int j = i + 1; j < vm; j++) { if (d[x][i][j-1]) d[x][i] |= d[x][j]; } } for (int i = 1; i <= v[x]; i++) for (int j = v[x]; j < vm; j++) if ((i == v[x] or d[x][i][v[x] - 1]) and (j == v[x] or d[x][v[x] + 1][j])) d[x][i][j] = 1; for (int i = 0; i < vm; i++) for (int j = i; j < vm; j++) if (j < v[x] || v[x] < i) d[x][i][j] = 0; } int main () { cin >> n; for (int i = 0; i < n; i++) { cin >> v[i]; } for (int i = 0; i < n - 1; i++) { int a, b; cin >> a >> b; g[a-1].push_back (b - 1); } dfs (0); int ans = 0; for (int i = 0; i < vm; i++) ans += d[0][i].count (); cout << ans; }

Compilation message (stderr)

uzastopni.cpp: In function 'void dfs(int)':
uzastopni.cpp:17:6: warning: unused variable 'ptr' [-Wunused-variable]
  int ptr = 0;
      ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...