답안 #598014

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
598014 2022-07-17T10:26:47 Z OttoTheDino Chase (CEOI17_chase) C++17
40 / 100
321 ms 524288 KB
#include <bits/stdc++.h>
using namespace std;

#define rep(i,s,e)                  for (ll i = s; i <= e; ++i)
#define rrep(i,s,e)                 for (ll i = s; i >= e; --i)
#define pb                          push_back
#define pf                          push_front
#define fi                          first
#define se                          second
#define all(a)                      a.begin(), a.end()
#define len(a)                      (ll)a.size()
typedef long long ll;
typedef pair<ll, ll> ii;
typedef pair<ll, ll> pll;
typedef vector<ii> vii;
typedef vector<ll> vi;
typedef vector<double> vd;
typedef vector<string> vs;
typedef vector<ll> vll;

const ll mx = 1e5, mxv = 100;
ll p[mx+1], s[mx+1];
vi adj[mx+1];
map<int,ll> dp[mx+1][mxv+1];

ll dfs (int u, int par, int cnt)  {
    if (cnt==0) return 0;

    if (dp[u][cnt].find(par)!=dp[u][cnt].end()) return dp[u][cnt][par];

    dp[u][cnt][par] = s[u]-p[par];

    for (int v : adj[u]) {
        if (v==par) continue;
        dp[u][cnt][par] = max(dp[u][cnt][par], max(s[u]-p[par]+dfs(v,u,cnt-1), dfs(v,u,cnt))); 
    }

    return dp[u][cnt][par];
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    ll n, l; cin >> n >> l;

    rep (i,1,n) cin >> p[i];

    rep (i,1,n-1) {
        ll u, v; cin >> u >> v;
        adj[u].pb(v);
        adj[v].pb(u);
    }

    rep (i,1,n) for (int v : adj[i]) s[i] += p[v];

    if (n>1e3) {
        cout << dfs(1,0,l) << "\n";
        return 0;
    }

    ll ans = 0;
    rep (i,1,n) {
        ans = max(ans, dfs (i, 0, l));
    }

    cout << ans << "\n";

    return 0;
}

# 결과 실행 시간 메모리 Grader output
1 Correct 209 ms 476932 KB Output is correct
2 Correct 203 ms 476912 KB Output is correct
3 Correct 209 ms 477020 KB Output is correct
4 Correct 210 ms 476980 KB Output is correct
5 Correct 203 ms 477020 KB Output is correct
6 Correct 209 ms 476956 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 209 ms 476932 KB Output is correct
2 Correct 203 ms 476912 KB Output is correct
3 Correct 209 ms 477020 KB Output is correct
4 Correct 210 ms 476980 KB Output is correct
5 Correct 203 ms 477020 KB Output is correct
6 Correct 209 ms 476956 KB Output is correct
7 Correct 236 ms 486056 KB Output is correct
8 Correct 206 ms 477740 KB Output is correct
9 Correct 321 ms 477504 KB Output is correct
10 Correct 212 ms 478460 KB Output is correct
11 Correct 210 ms 478412 KB Output is correct
12 Correct 214 ms 477864 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 279 ms 524288 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 209 ms 476932 KB Output is correct
2 Correct 203 ms 476912 KB Output is correct
3 Correct 209 ms 477020 KB Output is correct
4 Correct 210 ms 476980 KB Output is correct
5 Correct 203 ms 477020 KB Output is correct
6 Correct 209 ms 476956 KB Output is correct
7 Correct 236 ms 486056 KB Output is correct
8 Correct 206 ms 477740 KB Output is correct
9 Correct 321 ms 477504 KB Output is correct
10 Correct 212 ms 478460 KB Output is correct
11 Correct 210 ms 478412 KB Output is correct
12 Correct 214 ms 477864 KB Output is correct
13 Runtime error 279 ms 524288 KB Execution killed with signal 9
14 Halted 0 ms 0 KB -