제출 #1316386

#제출 시각아이디문제언어결과실행 시간메모리
1316386ezzzay장애물 (IOI25_obstacles)C++20
10 / 100
138 ms10408 KiB
//#include "obstacles.h" #include<bits/stdc++.h> using namespace std; #define ff first #define ss second #define pb push_back vector<int>HH,TT; const int N=3e6+5; int st[N]; int n; void build(int node, int L, int R){ if(L==R){ st[node]=HH[L-1]; return; } int mid=(L+R)/2; build(node*2,L,mid); build(node*2+1,mid+1,R); st[node]=max(st[node*2],st[node*2+1]); } int find(int node, int L, int R, int l, int r){ if(l>R or L>r)return 0; if(l<=L and R<=r)return st[node]; int mid=(L+R)/2; return max(find(node*2,L,mid,l,r),find(node*2+1,mid+1,R,l,r)); } void initialize(std::vector<int> T, std::vector<int> H) { TT.clear(); HH.clear(); for(auto a:T)TT.pb(a); for(auto b:H)HH.pb(b); n=HH.size(); build(1,1,(int)HH.size()); } bool can_reach(int L, int R, int S, int D) { if(S>D)swap(S,D); int h=find(1,1,n,S+1,D+1); return TT[0]>h; }
#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...