# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
65666 | imeimi2000 | 두 로봇 (KOI18_robot) | C++17 | 139 ms | 59008 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <unordered_map>
#include <functional>
#include <cstring>
#include <cmath>
#include <ctime>
#include <cstdlib>
using namespace std;
typedef long long llong;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<llong, llong> pll;
struct _edge {
int x, c;
_edge(int x, int c) : x(x), c(c) {}
};
int n, s, e;
vector<_edge> edge[100001];
int mx[100001];
int dist[100001];
void dfs(int x, int p) {
for (_edge i : edge[x]) {
if (i.x == p) continue;
mx[i.x] = max(mx[x], i.c);
dist[i.x] = dist[x] + i.c;
dfs(i.x, x);
}
}
int main() {
scanf("%d%d%d", &n, &s, &e);
for (int i = 1; i < n; ++i) {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
edge[a].emplace_back(b, c);
edge[b].emplace_back(a, c);
}
dfs(s, 0);
printf("%d\n", dist[e] - mx[e]);
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... |