Submission #1316390

#TimeUsernameProblemLanguageResultExecution timeMemory
1316390ezzzayObstacles for a Llama (IOI25_obstacles)C++20
23 / 100
85 ms51628 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=3e5+5; bool ok[5][N]; int par[5][N]; int xx[4]={0,0,-1,1}; int yy[4]={1,-1,0,0}; int n,m; void dfs(int y, int x, int P){ par[y][x]=P; for(int i=0;i<4;i++){ int y2=y+yy[i],x2=x+xx[i]; if(y2>=n or y2<0 or x2>=m or x2<0)continue; if(par[y2][x2]==0 and ok[y2][x2])dfs(y2,x2,P); } } void initialize(std::vector<int> T, std::vector<int> H) { n=T.size(),m=H.size(); for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ ok[i][j]=0; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(T[i]>H[j]){ ok[i][j]=1; } } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(ok[i][j] and par[i][j]==0){ dfs(i,j,i*m+j+10); } } } } bool can_reach(int L, int R, int S, int D) { return par[0][S]==par[0][D]; }
#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...