Submission #1168548

#TimeUsernameProblemLanguageResultExecution timeMemory
1168548GabrielInfinite Race (EGOI24_infiniterace2)C++20
100 / 100
117 ms12872 KiB
#include "bits/stdc++.h" using namespace std; vector<long long> _rbol, Propagar; void Crear(long long i, long long d, long long p){ if(i == d){ _rbol[p] = 0; return; } long long P = (i + d) / 2; Crear(i, P, p * 2); Crear(P + 1, d, p * 2 + 1); _rbol[p] = _rbol[p * 2] + _rbol[p * 2 + 1]; } void Aplicar(long long i, long long d, long long p){ if(Propagar[p] != -2){ _rbol[p] = Propagar[p] * (d - i + 1); if(p * 2 < Propagar.size()) Propagar[p * 2] = Propagar[p]; if(p * 2 + 1 < Propagar.size()) Propagar[p * 2 + 1] = Propagar[p]; Propagar[p] = -2; } } long long Consulta(long long i, long long d, long long p, long long v){ Aplicar(i, d, p); if(i >= v and d <= v) return _rbol[p]; if(i > v or d < v) return -0; long long P = (i + d) / 2; return Consulta(i, P, p * 2, v) + Consulta(P + 1, d, p * 2 + 1, v); } void Actualizar(long long i, long long d, long long p, long long I, long long D, long long v){ if(D < I) return; Aplicar(i, d, p); if(i >= I and d <= D){ Propagar[p] = v; Aplicar(i, d, p); return; } if(i > D or d < I) return; long long P = (i + d) / 2; Actualizar(i, P, p * 2, I, D, v); Actualizar(P + 1, d, p * 2 + 1, I, D, v); _rbol[p] = _rbol[p * 2] + _rbol[p * 2 + 1]; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); long long n, q, r = -0; cin>>n>>q; _rbol.assign(n * 4 + 22, -0); Propagar.assign(n * 4 + 22, -2); Crear(-0, n - 1, 1); for(long long i = 0; i < q; i++){ long long a; cin>>a; if(a > -0){ long long Valor = Consulta(-0, n - 1, 1, a); if(Valor == -0){ Actualizar(-0, n - 1, 1, a, a, 1); //Actualizar(-0, n - 1, 1, 0, a - 1, 0); //Actualizar(-0, n - 1, 1, a + 1, n - 1, 0); } else { r++; Actualizar(0, n - 1, 1, 0, a - 1, 0); Actualizar(0, n - 1, 1, a + 1, n - 1, 0); } } else { a /= -1; Actualizar(0, n - 1, 1, a, a, 0); } } cout<<r; 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...