Submission #298889

#TimeUsernameProblemLanguageResultExecution timeMemory
298889toloraiaPower Plant (JOI20_power)C++14
100 / 100
264 ms28280 KiB
#include <bits/stdc++.h> #define F first #define S second #define mp make_pair #define pb push_back //#define ll __int128 #define ll long long #define int long long #define LEFT(a) ((a)<<1) #define RIGHT(a) (LEFT(a) + 1) #define MID(a,b) ((a+b)>>1) #define MAX(a,b) ((a)>(b)?(a):(b)) #define MIN(a,b) ((a)<(b)?(a):(b)) #define y1 y122 /* #pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #pragma GCC optimization ("unroll-loops") /* #pragma GCC optimize ("O3") #pragma GCC optimize("Ofast") #pragma GCC target("avx2,fma") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #pragma GCC target ("avx2") #pragma GCC optimization ("unroll-loops") #pragma comment(linker, "/STACK: 20000000005") */ using namespace std; const int N = 200005; int n, ans; int c[N]; int dp[N], DP[N]; vector < int > g[N]; void dfs (int k, int p){ for (int to : g[k]){ if (to == p) continue; dfs (to, k); dp[k] += dp[to]; } dp[k] = max (dp[k] - c[k], c[k]); } void go (int k, int p, int X){ int sum = 0; ans = max (ans, c[k] + X); for (int to : g[k]){ if (to == p) continue; sum += dp[to]; ans = max (ans, c[k] + dp[to]); } sum += X; ans = max (ans, sum - c[k]); for (int to : g[k]){ if (to == p) continue; sum -= dp[to]; int mx = max (c[k], sum - c[k]); go (to, k, mx); sum += dp[to]; } } main() { //freopen ("in.in", "r", stdin);freopen ("out.out", "w", stdout); ios_base::sync_with_stdio(0); cin >> n; for (int u, v, i = 1; i < n; i++){ cin >> u >> v; g[u].pb (v); g[v].pb (u); } char ch; for (int i = 1; i <= n; i++){ cin >> ch; c[i] = ch - '0'; c[0] += c[i]; } if (c[0] >= 2) ans = 2; else ans = c[0]; dfs (1, 0); go (1, 0, 0); cout << ans << endl; }

Compilation message (stderr)

power.cpp:19:1: warning: "/*" within comment [-Wcomment]
   19 | /*
      |  
power.cpp:71:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   71 | main()
      |      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...