Submission #1260657

#TimeUsernameProblemLanguageResultExecution timeMemory
1260657truongdz_top12Obstacles for a Llama (IOI25_obstacles)C++20
0 / 100
2111 ms1628504 KiB
#include "obstacles.h" #include<bits/stdc++.h> using namespace std; const int dx[]={-1,0,1,0}; const int dy[]={0,-1,0,1}; int N,M; vector<vector<int>>G; bool ok(int x,int y,int L,int R){return L<=y&&y<=R&&0<=x&&x<N;} void initialize(vector<int>T,vector<int>H) { N=T.size(); M=H.size(); G.assign(N,{}); for(int i=0;i<T.size();++i) for(int j=0;j<H.size();++j) G[i].push_back(T[i]<=H[j]); } bool can_reach(int L,int R,int S,int D) { vector<vector<int>>d(N,vector<int>(M,-1)); d[0][S]=0; queue<pair<int,int>>qu; qu.push({0,S}); while(!qu.empty()) { auto[x,y]=qu.front(); qu.pop(); for(int i=0;i<4;++i) { int nx=x+dx[i]; int ny=y+dy[i]; if(ok(nx,ny,L,R)&&d[nx][ny]==-1) if(!G[nx][ny]) { d[nx][ny]=d[x][y]+1; qu.push({nx,ny}); } } } return d[0][D]!=-1; }
#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...