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...