# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
229701 | Nightlight | Palembang Bridges (APIO15_bridge) | C++14 | 13 ms | 15232 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <queue>
#include <cstdio>
#include <cstring>
#include <set>
#define pii pair<int, int>
#define piii tuple<int, int, int>
#define mt make_tuple
#define push_back emplace_back
using namespace std;
int N, M;
int pos, mov, sta, fin;
vector<pii> adj[30005];
set<int> here[300005];
int dist[30005];
void BFS() {
memset(dist, 0x3f3f3f3f, sizeof(dist));
priority_queue<pii, vector<pii>, greater<pii>> pq;
pq.push(make_pair(0, sta));
dist[sta] = 0;
while(!pq.empty()) {
int u = pq.top().second;
int now = pq.top().first;
pq.pop();
if(dist[u] < now) continue;
for(pii v : adj[u]) {
if(dist[u] + v.second < dist[v.first]) {
dist[v.first] = dist[u] + v.second;
pq.push(make_pair(dist[v.first], v.first));
}
}
}
if(dist[fin] == 0x3f3f3f3f) puts("-1");
else printf("%d\n", dist[fin]);
}
int main() {
scanf("%d %d", &N, &M);
scanf("%d %d", &pos, &mov);
here[pos].insert(mov);
sta = pos;
scanf("%d %d", &pos, &mov);
here[pos].insert(mov);
fin = pos;
for(int i = 2; i < M; i++) {
scanf("%d %d", &pos, &mov);
here[pos].insert(mov);
}
for(int i = 0; i <= N; i++) {
if(i == fin) continue;
for(int now : here[i]) {
for(int nxt = i - now, p = 1; nxt >= 0; nxt -= now, p++) {
adj[i].push_back(nxt, p);
if(here[nxt].count(p)) break;
}
for(int nxt = i + now, p = 1; nxt <= N; nxt += now, p++) {
adj[i].push_back(nxt, p);
if(here[nxt].count(p)) break;
}
}
}
BFS();
}
컴파일 시 표준 에러 (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... |