Submission #1299796

#TimeUsernameProblemLanguageResultExecution timeMemory
1299796theiuliusObstacles for a Llama (IOI25_obstacles)C++20
24 / 100
234 ms17600 KiB
#include "obstacles.h" #include <cassert> #include <cstdio> #include <bits/stdc++.h> using namespace std; #define ll long long #define ff first #define ss second #define pb push_back #define endl "\n" int n = 0, m = 0; const int N = 200005; set<int> se; vector<int> t, h; void initialize(std::vector<int> T, std::vector<int> H){ t = T; h = H; n = t.size(); m = h.size(); for (int j = 0; j < m; j++){ if (t[n - 1] <= h[j]){ se.insert(j); } } } bool can_reach(int L, int R, int s, int d){ if (s > d){ swap(s, d); } if (s + 1 == d){ return 1; } int l = -1; if (s + 1 < m && t[0] > h[s + 1]){ // s-is marjvniv l = s + 1; }else if (t[0] > h[s]){ // s-is dabla l = s; }else if (s - 1 >= 0 && t[0] > h[s - 1]){ // s-is marcxniv l = s - 1; } int r = -1; if (d - 1 >= 0 && t[0] > h[d - 1]){ // d-is marcxiv r = d - 1; }else if (t[0] > h[d]){ // d-is dabla r = d; }else if (d + 1 < m && t[0] > h[d + 1]){ // d-is marjvniv r = d + 1; } if (l == -1 || r == -1){ return 0; } auto itl = se.lower_bound(l); auto itr = se.lower_bound(r); if (itl == itr){ return 1; } 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...