Submission #1258172

#TimeUsernameProblemLanguageResultExecution timeMemory
1258172mkkkkkkkkObstacles for a Llama (IOI25_obstacles)C++20
37 / 100
79 ms49224 KiB
#include "obstacles.h"
#include <bits/stdc++.h>

using namespace std;

int N,M;
bool arr[3][200000],vis[3][200000];
int arr2[3][200000];

void dfs(int i,int j,int br)
{
    vis[i][j]=true;
    arr2[i][j]=br;
    if(i>0 && arr[i-1][j]==true && vis[i-1][j]==false)
    dfs(i-1,j,br);

    if(j>0 && arr[i][j-1]==true && vis[i][j-1]==false)
    dfs(i,j-1,br);

    if(i<N-1 && arr[i+1][j]==true && vis[i+1][j]==false)
    dfs(i+1,j,br);

    if(j<M-1 && arr[i][j+1]==true && vis[i][j+1]==false)
    dfs(i,j+1,br);

}


void initialize(vector<int> T, vector<int> H)
{
    N=T.size();
    M=H.size();
    if(T.size()<=3)
    {
        for(int i=0;i<N;i++)
        {
            for(int j=0;j<H.size();j++)
            {
                if(T[i]>H[j])
                {
                    arr[i][j]=true;
                }
                else
                    arr[i][j]=false;
            }
        }
    }
    else
    {

            for(int j=0;j<H.size();j++)
            {
                if(T[N-1]>H[j])
                {
                    arr[0][j]=true;
                }
                else
                    arr[0][j]=false;
            }


        N=1;

    }
    int br=1;
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<M;j++)
        {
            if(vis[i][j]==false && arr[i][j]==true)
            {
                dfs(i,j,br);
                br++;
            }
        }
    }


  return;
}

bool can_reach(int L, int R, int S, int D)
{
    if(arr2[0][S]==arr2[0][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...