Submission #1266029

#TimeUsernameProblemLanguageResultExecution timeMemory
1266029thenpcObstacles for a Llama (IOI25_obstacles)C++20
0 / 100
63 ms6728 KiB
#include <bits/stdc++.h> #include "obstacles.h" using namespace std; #define ll long long int n,m,cnt[200005],cnt1[200005]; bool check[200005]; void initialize(vector<int> t,vector<int> h){ n=t.size(); m=h.size(); for(int i=0;i<m;i++){ check[i]=false; } for(int i=0;i<m;i++){ if(h[i]==0){ check[i]=true; int r=i+1,l=i-1; while(true){ if(l<0){ break; } if(h[l]<=1){ check[l]=true; l--; } else{ break; } } while(true){ if(r>=0){ break; } if(h[r]<=1){ check[r]=true; r++; } else{ break; } } i=r; } } for(int i=0;i<m;i++){ if(t[0]>h[i]){ if(i==0){ cnt[i]=0; } cnt[i]=cnt[i-1]; } else{ if(i==0){ cnt[i]=1; } cnt[i]=cnt[i-1]+1; } } for(int i=0;i<m;i++){ if(t[2]>h[i]){ if(i==0){ cnt1[i]=0; } cnt1[i]=cnt1[i-1]; } else{ if(i==0){ cnt1[i]=1; } cnt1[i]=cnt1[i-1]+1; } } } bool can_reach(int l,int r,int s,int d){ if(cnt[s]==cnt[d]){ return true; } if(cnt1[s]==cnt1[d]&&check[s]&&check[d]){ 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...