Submission details
Task:Microservice hell
Sender:aalto25f_003
Submission time:2025-10-08 17:29:51 +0300
Language:C++ (C++17)
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:63:13: error: 'max_element' was not declared in this scope
   63 |   cout << (*max_element(f + 1, f + n + 1) > x ? "No" : "Yes") << '\n';
      |             ^~~~~~~~~~~

Code

#include <iostream>
#include <vector>
#include <set>

using namespace std;

const int N = 1e5 + 5;

int n, m;
long long x;
vector<int> g[N];
int c[N];
long long f[N];
set<pair<int, int> > s;
int out[N];
vector<int> to[N];

void dfs(int u) {
  c[u] = 1;
  for (int v : g[u]) {
    if (c[v] == 1) {
      cout << "No" << '\n';
      exit(0);
    } else if (c[v] == 0) {
      dfs(v);
    }
  }
  c[u] = 2;
}

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> m >> x;
  for (int i = 1; i <= m; i++) {
    int a, b;
    cin >> a >> b;
    g[a].emplace_back(b);
    to[b].emplace_back(a);
    out[a]++;
  }
  for (int i = 1; i <= n; i++) {
    if (c[i] == 0) {
      dfs(i);
    }
  }
  for (int i = 1; i <= n; i++) {
    s.insert(make_pair(out[i], i));
  }
  while (!s.empty()) {
    int u = s.begin()->second;
    s.erase(s.begin());
    f[u]++;
    for (int v : to[u]) {
      out[v]--;
      f[v] += f[u];
    }
    for (int v : to[u]) {
      s.erase(s.find(make_pair(out[v] + 1, v)));
      s.insert(make_pair(out[v], v));
    }
  }
  cout << (*max_element(f + 1, f + n + 1) > x ? "No" : "Yes") << '\n';
  /*
  long long sum = 0;
  for (int i = 1; i <= n; i++) {
    sum += f[i];
    if (sum > x) {
      cout << "No" << '\n';
      return 0;
    }
  }
  cout << "Yes" << '\n';
  */
  return 0;
}