Submission #1258215

#TimeUsernameProblemLanguageResultExecution timeMemory
1258215mkkkkkkkkObstacles for a Llama (IOI25_obstacles)C++20
21 / 100
2096 ms8728 KiB
#include "obstacles.h" #include <bits/stdc++.h> using namespace std; vector<int> t,h; void initialize(vector<int> T, vector<int> H) { t=T; h=H; return; } bool can_reach(int L, int R, int S, int D) { vector<pair<int,int>> vec1,vec2; int br=h[S]; int l=S,r=S; for(int i=0;i<t.size();i++) { if(t[i]<=br) break; for(;l>0;l--) { if(h[l-1]>=t[i]) break; else { br=min(br,h[l-1]); } } for(;r<h.size()-2;r++) { if(h[r+1]>=t[i]) break; else { br=min(br,h[r+1]); } } vec1.push_back({l,r}); } br=h[D]; l=D,r=D; for(int i=0;i<t.size();i++) { if(t[i]<=br) break; for(;l>0;l--) { if(h[l-1]>=t[i]) break; else { br=min(br,h[l-1]); } } for(;r<h.size()-2;r++) { if(h[r+1]>=t[i]) break; else { br=min(br,h[r+1]); } } vec2.push_back({l,r}); } bool pos=false; for(int i=0;i<min(vec1.size(),vec2.size());i++) { if(vec1[i].first>vec2[i].second || vec1[i].second<vec2[i].first) continue; else { return true; } } return false; }
#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...