# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
643258 | rainboy | Flights (JOI22_flights) | C++17 | 5 ms | 624 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "Ali.h"
#include <string>
#include <vector>
typedef std::vector<int> vi;
typedef std::string str;
namespace {
const int N = 10000;
int ej[N][3], eo[N];
void append(int i, int j) {
ej[i][eo[i]++] = j;
}
str aa; int k, l;
void dfs(int p, int i) {
SetID(i, k++);
if (p != -1)
aa[l++] = '0';
for (int o = eo[i]; o--; ) {
int j = ej[i][o];
if (j != p)
dfs(i, j);
}
if (p != -1)
aa[l++] = '1';
}
}
void Init(int n, vi ii, vi jj) {
for (int i = 0; i < n; i++)
eo[i] = 0;
for (int h = 0; h < n - 1; h++)
append(ii[h], jj[h]), append(jj[h], ii[h]);
aa.resize((n - 1) * 2), k = l = 0;
dfs(-1, 0);
}
str SendA(str bb) {
return aa;
}
#include "Benjamin.h"
#include <string>
#include <vector>
typedef std::vector<int> vi;
typedef std::string str;
namespace {
const int N = 10000;
int dd[N], pp[N], qu[N], n, u, v;
}
str SendB(int n_, int u_, int v_) {
n = n_, u = u_, v = v_;
return "00000000001111111111";
}
int Answer(str aa) {
int cnt;
cnt = 0;
pp[0] = -1, dd[0] = 0, qu[cnt++] = 0;
for (int i = 0, k = 1; i < (n - 1) * 2; i++)
if (aa[i] == '0') {
if (k >= n || cnt >= n)
return -1;
dd[k] = dd[qu[cnt - 1]] + 1, pp[k] = qu[cnt - 1], qu[cnt++] = k++;
} else
cnt--;
int d = 0;
while (u != v) {
if (u == -1 || v == -1)
return -1;
d++;
if (dd[u] > dd[v])
u = pp[u];
else
v = pp[v];
}
return d;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |