# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
39498 | 14kg | 공장들 (JOI14_factories) | C++11 | 6000 ms | 155248 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "factories.h"
#include <algorithm>
#include <vector>
#define N 500001
#define NN 1048576
#define LL long long
#define INF 999999999999999999
#define max2(x,y) (x>y?x:y)
using namespace std;
int n, nn, t[N], tree_up[N][20], p[20];
int tree_lev[N], tree_e[N];
LL deep[N], seg[2][NN];
vector<pair<int, int> > r[N];
int dfs_lev, q_len, q[N*3];
LL min2(LL x, LL y) {
return x < y ? x : y;
}
void dfs(int x, int up, LL _deep, int _t) {
tree_lev[x] = ++dfs_lev;
deep[dfs_lev] = _deep, t[dfs_lev] = _t;
tree_up[dfs_lev][0] = tree_lev[up];
for (int i = 1; i < 20; i++)
tree_up[dfs_lev][i] = tree_up[tree_up[dfs_lev][i - 1]][i - 1];
for (auto i : r[x])
if (i.first != up) dfs(i.first, x, _deep + (LL)i.second, _t + 1);
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |