Submission #443934

# Submission time Handle Problem Language Result Execution time Memory
443934 2021-07-12T13:41:01 Z MKutayBozkurt Harbingers (CEOI09_harbingers) C++17
Compilation error
0 ms 0 KB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

#define int long long

struct node {
  int p, s; // prep, speed
};

int32_t main() {
  freopen("harbingers.in", "r", stdin);
  freopen("harbingers.out", "w", stdout);
  ios::sync_with_stdio(0); cin.tie(0);
  int n; cin >> n;
  vector<vector<pair<int, int>>> g(n);
  vector<node> nodes(n + 1);
  vector<pair<int, int>> pr(n); // parent
  for (int i = 0; i < n - 1; i++) {
    int a, b, c; cin >> a >> b >> c, a--, b--;
    if (a > b) swap(a, b);
    g[a].emplace_back(b, c);
    g[b].emplace_back(a, c);
    pr[b] = {a, c};
  }
  for (int i = 1; i <= n - 1; i++) {
    int p, s; cin >> p >> s;
    nodes[i] = node{p, s};
  }

  function<int(int, int)> f = [&](int node, int har) {
    if (node == 0) return 0;
    int st = nodes[node].p + pr[node].second * nodes[node].s;
    int nd = nodes[har].s * pr[node].second;
    if (node == har) {
      return st + f(pr[node].first, node);
    }
    if (st < nd) {
      return st + f(pr[node].first, node);
    } else {
      return nd + f(pr[node].first, har);
    }
  };

  for (int i = 1; i <= n - 1; i++) {
    cout << f(i, i) << " ";
  }
  cout << '\n';
}

Compilation message

harbingers.cpp: In lambda function:
harbingers.cpp:37:17: error: inconsistent types 'int' and 'long long int' deduced for lambda return type
   37 |       return st + f(pr[node].first, node);
      |              ~~~^~~~~~~~~~~~~~~~~~~~~~~~~
harbingers.cpp:40:17: error: inconsistent types 'int' and 'long long int' deduced for lambda return type
   40 |       return st + f(pr[node].first, node);
      |              ~~~^~~~~~~~~~~~~~~~~~~~~~~~~
harbingers.cpp:42:17: error: inconsistent types 'int' and 'long long int' deduced for lambda return type
   42 |       return nd + f(pr[node].first, har);
      |              ~~~^~~~~~~~~~~~~~~~~~~~~~~~
harbingers.cpp: In function 'int32_t main()':
harbingers.cpp:13:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |   freopen("harbingers.in", "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
harbingers.cpp:14:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |   freopen("harbingers.out", "w", stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~