Submission #103754

#TimeUsernameProblemLanguageResultExecution timeMemory
103754E869120Chase (CEOI17_chase)C++14
0 / 100
80 ms8716 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; #pragma warning (disable: 4996) long long N, V, p[1 << 17], c[1 << 17], ret1, ret2, maxn = 0; vector<int>X[1 << 17]; bool used[1 << 17]; void dfs(int pos, int dep) { maxn = max(maxn, abs(ret1 - ret2)); used[pos] = true; if (dep == V) return; for (int to : X[pos]) { if (used[to] == true) continue; for (int r : X[to]) { c[r]++; if (c[r] == 1) ret2 += p[r]; } dfs(to, dep + 1); for (int r : X[to]) { c[r]--; if (c[r] == 0) ret2 -= p[r]; } } } int main() { scanf("%lld%lld", &N, &V); for (int i = 1; i <= N; i++) scanf("%lld", &p[i]); for (int i = 1; i <= N - 1; i++) { long long u, v; scanf("%lld%lld", &u, &v); X[u].push_back(v); X[v].push_back(u); } for (int i = 1; i <= N; i++) X[i].push_back(i); for (int i = 1; i <= N; i++) { if (N >= 2000 && i >= 2) break; for (int j = 1; j <= N; j++) used[j] = false; ret1 = p[i]; ret2 = 0; for (int j = 1; j <= N; j++) c[j] = 0; for (int j : X[i]) { c[j] = 1; ret2 += p[j]; } dfs(i, 1); } cout << maxn << endl; return 0; }

Compilation message (stderr)

chase.cpp:5:0: warning: ignoring #pragma warning  [-Wunknown-pragmas]
 #pragma warning (disable: 4996)
 
chase.cpp: In function 'int main()':
chase.cpp:25:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld%lld", &N, &V);
  ~~~~~^~~~~~~~~~~~~~~~~~~~
chase.cpp:26:36: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for (int i = 1; i <= N; i++) scanf("%lld", &p[i]);
                               ~~~~~^~~~~~~~~~~~~~~
chase.cpp:28:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   long long u, v; scanf("%lld%lld", &u, &v);
                   ~~~~~^~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...