Submission #1088701

# Submission time Handle Problem Language Result Execution time Memory
1088701 2024-09-14T20:11:45 Z juansigler Infinite Race (EGOI24_infiniterace2) C++14
Compilation error
0 ms 0 KB
#include <limits.h>
#include <math.h>
#include <stdio.h>

#include <algorithm>
#include <complex>
#include <iomanip>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using namespace std;
typedef long long int lld;
typedef long double llf;
typedef pair<int, int> pii;

int minLaps(const vector<int> &overtakes) {
  int n = overtakes.size();
  int ans = 0;
  bool iAmFirst = false;
  for (auto overtake : overtakes) {
    if (overtake == 1) {
      // Aka alcanzo al oponente
      ans += (iAmFirst ? 1 : 0);
      iAmFirst = true;
    } else {
      // El oponente alcanzo a Aka
      iAmFirst = false;
    }
  }
  return ans;
}

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

  int n, m;
  cin >> n;
  cin >> m;

  set<int> antes, despues;
  for (int i = 1; i < n; ++i) {
    despues.insert(i);
  }

  int ans = 0;
  for (int i = 0; i < m; ++i) {
    int x;
    cin >> x;
    int p = abs(x), sign = (x < 0 ? -1 : 1);
    if (despues.count(p) > 0) {
      if (sign > 0) {
        // Alcanzo a alguien que está despues de mi
        despues.erase(p);
        antes.insert(p);
      } else {
        // Alguien que está después de mí me alcanza
        // No-op
      }
    } else {
      if (sign > 0) {
        // Alcanzo alguien que estaba atras de mi
        // Debo dar la vuelta para eso, además todos los que
        // Estaban antes, se pasan a estar después
        despues.merge(antes); // mezclo todo
        despues.erase(p);
        ans++;
        antes.insert(p);
      } else {
        // Alguien que está detrás de mí me alcanza
        antes.erase(p);
        despues.insert(p);
      }
    }
  }
  cout << ans << endl;

  return 0;
}

Compilation message

Main.cpp: In function 'int minLaps(const std::vector<int>&)':
Main.cpp:26:7: warning: unused variable 'n' [-Wunused-variable]
   26 |   int n = overtakes.size();
      |       ^
Main.cpp: In function 'int main()':
Main.cpp:74:17: error: 'class std::set<int>' has no member named 'merge'
   74 |         despues.merge(antes); // mezclo todo
      |                 ^~~~~