제출 #1258215

#제출 시각아이디문제언어결과실행 시간메모리
1258215mkkkkkkkk장애물 (IOI25_obstacles)C++20
21 / 100
2096 ms8728 KiB
#include "obstacles.h"
#include <bits/stdc++.h>

using namespace std;

vector<int> t,h;


void initialize(vector<int> T, vector<int> H)
{
    t=T;
    h=H;
  return;
}

bool can_reach(int L, int R, int S, int D)
{
    vector<pair<int,int>> vec1,vec2;
    
    int br=h[S];
    int l=S,r=S;
    for(int i=0;i<t.size();i++)
    {
        if(t[i]<=br)
            break;
        for(;l>0;l--)
        {
            if(h[l-1]>=t[i])
                break;
            else
            {
                br=min(br,h[l-1]);
                
            }
        }
        for(;r<h.size()-2;r++)
        {
            if(h[r+1]>=t[i])
                break;
            else
            {
                br=min(br,h[r+1]);
                
            }
        }
        vec1.push_back({l,r});
    }
    
    
     br=h[D];
     l=D,r=D;
    for(int i=0;i<t.size();i++)
    {
        if(t[i]<=br)
            break;
        for(;l>0;l--)
        {
            if(h[l-1]>=t[i])
                break;
            else
            {
                br=min(br,h[l-1]);
                
            }
        }
        for(;r<h.size()-2;r++)
        {
            if(h[r+1]>=t[i])
                break;
            else
            {
                br=min(br,h[r+1]);
                
            }
        }
        vec2.push_back({l,r});
    }
    bool pos=false;
    for(int i=0;i<min(vec1.size(),vec2.size());i++)
    {
        if(vec1[i].first>vec2[i].second || vec1[i].second<vec2[i].first)
            continue;
        else
        {
            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...