제출 #1302612

#제출 시각아이디문제언어결과실행 시간메모리
1302612lunarecho장애물 (IOI25_obstacles)C++20
0 / 100
2116 ms533792 KiB
#include "obstacles.h" #include <bits/stdc++.h> using namespace std; int dx[] = {-1, 1, 0, 0}; int dy[] = {0, 0, -1, 1}; vector<int> t, h; map<pair<int, int>, bool> reach; bool isveg(int x, int y) { return x >= 0 && x < t.size() && y >= 0 && y < h.size() && t[x] > h[y]; } void initialize(std::vector<int> T, std::vector<int> H) { t = T; h = H; for(int i=0;i<h.size();++i) { if(isveg(0, i)) { queue<pair<int, int>> q; map<pair<int, int>, bool> vis; vis[{0, i}] = true; q.push({0, i}); while(!q.empty()) { auto f = q.front(); q.pop(); if(f.first == 0) { reach[{i, f.second}] = true; } for(int j=0;j<4;++j) { int nx = f.first + dx[j], ny = f.second + dy[j]; if(isveg(nx, ny) && !vis[{nx, ny}]) { q.push({nx, ny}); vis[{nx, ny}] = true; } } } } } return; } bool can_reach(int L, int R, int S, int D) { return reach[{S,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...