Submission #1088702

#TimeUsernameProblemLanguageResultExecution timeMemory
1088702juansiglerInfinite Race (EGOI24_infiniterace2)C++14
100 / 100
62 ms11092 KiB
#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 main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n; cin >> m; set<int> antes; int ans = 0; for (int i = 0; i < m; ++i) { int x; cin >> x; int p = abs(x), sign = (x < 0 ? -1 : 1); if (antes.count(p) == 0) { if (sign > 0) { // Alcanzo a alguien que está despues de mi 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 ans++; antes.clear(); antes.insert(p); } else { // Alguien que está detrás de mí me alcanza antes.erase(p); } } } cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...