Advertisement
Tbl_Mne_Ne_Dryg

Untitled

Aug 23rd, 2020
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define int long long
  3.  
  4. using namespace std;
  5.  
  6. vector<vector<int>> g;
  7. vector<int> c;
  8. vector<int> dp;
  9. vector<int> ans;
  10.  
  11. void dfs(int v) {
  12.     for(int i = 0; i < g[v].size(); i++) {
  13.         int to = g[v][i];
  14.         if(dp[to] != 0) continue;
  15.         dfs(to);
  16.         dp[v] += dp[to];
  17.     }
  18.     ans.push_back(v);
  19.     dp[v] += c[v];
  20. }
  21.  
  22. signed main() {
  23.     int n;
  24.     cin >> n;
  25.     g.resize(n);
  26.     c.resize(n);
  27.     dp.resize(n);
  28.     for(int i = 0; i < n; i++) {
  29.         cin >> c[i];
  30.     }
  31.     for(int i = 0; i < n; i++) {
  32.         int ch;
  33.         cin >> ch;
  34.         for(int j = 0; j < ch; j++) {
  35.             int v;
  36.             cin >> v;
  37.             v--;
  38.             g[i].push_back(v);
  39.         }
  40.     }
  41.     dfs(0);
  42.     cout << dp[0] << ' ' << ans.size() << '\n';
  43.     for(int i = 0; i < ans.size(); i++) {
  44.         cout << ans[i] + 1 << ' ';
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement