# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
107942 | patrikpavic2 | Jakarta Skyscrapers (APIO15_skyscraper) | C++17 | 762 ms | 46928 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <cstdio>
#include <cstring>
#include <ctime>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <cstring>
#include <deque>
#include <unordered_map>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
#define X first
#define Y second
#define PB push_back
using namespace std;
typedef long long ll;
typedef pair < int, int > pii;
typedef vector < int > vi;
typedef set < int > si;
const int N = 3e4 + 500;
const int M = 105;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const int LOG = 18;
const int OFF = (1 << LOG);
const double EPS = 1e-9;
const double PI = 3.1415926535;
cc_hash_table < short int, short int> dis[N];
int en, bio[N], x[N], y[N];
int n, m;
vector < int > pot[N];
deque < pii > q;
int main(){
scanf("%d%d", &n, &m);
for(int i = 0;i < m;i++){
scanf("%d%d", x + i, y + i);
pot[x[i]].PB(y[i]);
}
dis[x[0]][y[0]] = 1;
q.push_back({x[0], y[0]});
while(!q.empty()){
int cur = q.front().X;
int sk = q.front().Y;
//printf("%d %d = %d\n", cur, sk, dis[cur][sk]);
q.pop_front();
if(!bio[cur]){
for(int x : pot[cur]){
if((dis[cur][x] == 0 || dis[cur][sk] < dis[cur][x]))
q.push_front({cur, x}), dis[cur][x] = dis[cur][sk];
}
}
bio[cur] = 1;
if(cur - sk >= 0 && (dis[cur - sk][sk] == 0 || dis[cur - sk][sk] > 1 + dis[cur][sk]))
q.push_back({cur - sk, sk}), dis[cur - sk][sk] = 1 + dis[cur][sk];
if(cur + sk < n && (dis[cur + sk][sk] == 0 || dis[cur + sk][sk] > 1 + dis[cur][sk]))
q.push_back({cur + sk, sk}), dis[cur + sk][sk] = 1 + dis[cur][sk];
}
int ans = INF;
for(int i = 0;i <= n;i++) if(dis[x[1]][i]) ans = min(ans, (int)dis[x[1]][i]);
if(ans == INF) printf("-1\n");
else printf("%d\n", ans - 1);
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |