Submission #1857264
Source Code Expand
#include <cstdio> #include <vector> #include <algorithm> using namespace std; #define iter(i, n) for (int i = 1; i <= n; ++i) #define iter_d0(i, n) for (int i = n - 1; i >= 0; --i) const int inf = 1e9; const int NR = 2e5 + 10; int n, X, Y, xa[NR], ya[NR], fa[NR], f[NR][20], dep[NR]; vector<int> Ta[NR], Tb[NR]; void dfs(int x) { f[x][0] = fa[x]; for (int i = 1; (1 << i) <= dep[x]; ++i) f[x][i] = f[f[x][i - 1]][i - 1]; for (int v : Tb[x]) if (v != fa[x]) { fa[v] = x, dep[v] = dep[x] + 1, dfs(v); } } int lca(int x, int y) { if (dep[x] < dep[y]) swap(x, y); iter_d0(i, 20) if (dep[f[x][i]] >= dep[y]) x = f[x][i]; if (x == y) return x; iter_d0(i, 20) if (f[x][i] != f[y][i]) x = f[x][i], y = f[y][i]; return fa[x]; } int dist(int x, int y) { return dep[x] + dep[y] - 2 * dep[lca(x, y)]; } int getans(int x, int fa, int d) { int res = dist(x, Y); //printf("!!%d\n", x); for (int v : Ta[x]) if (v != fa) { //printf("!%d %d\n", v, dist(v, Y)); if (dist(x, v) >= 3) return inf; if (dep[v] > d + 1) res = max(res, getans(v, x, d + 1)); } return res; } int main() { //freopen("5E.in", "r", stdin); scanf("%d%d%d", &n, &X, &Y); dep[0] = -1; iter(i, n - 1) { scanf("%d%d", &xa[i], &ya[i]); Ta[xa[i]].push_back(ya[i]); Ta[ya[i]].push_back(xa[i]); } iter(i, n - 1) { int x, y; scanf("%d%d", &x, &y); Tb[x].push_back(y); Tb[y].push_back(x); } dfs(Y); int tmp = getans(X, 0, 0); printf("%d\n", tmp == inf ? -1 : 2 * tmp); return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Sugigma: The Showdown |
User | Ketsui |
Language | C++14 (GCC 5.4.1) |
Score | 1400 |
Code Size | 1550 Byte |
Status | AC |
Exec Time | 270 ms |
Memory | 50688 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:49:29: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d%d", &n, &X, &Y); dep[0] = -1; ^ ./Main.cpp:51:32: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d", &xa[i], &ya[i]); ^ ./Main.cpp:57:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d", &x, &y); ^
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1400 / 1400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | example0, example1, example2, example3, example4 |
All | doublestar0, doublestar1, doublestar2, doublestar3, doublestar4, doublestar5, doublestar6, doublestar7, example0, example1, example2, example3, example4, giri0, giri1, giri2, giri3, giri4, giri5, giri6, giri7, giri8, giri9, maxrand0, maxrand1, maxrand2, maxrand3, maxrand4, maxrand5, maxrand6, maxrand7, maxrand8, maxrand9, narashi0, narashi1, narashi2, narashi3, narashi4, narashi5, narashi6, narashi7, narashi8, narashi9, ok0, ok1, ok2, ok3, ok4, ok5, ok6, ok7, ok8, ok9, ouh0, ouh1, ouh2, ouh3, ouh4, ouh5, ouh6, ouh7, ouh8, ouh9, same0, same1, same2, same3, same4, same5, same6, same7, same8, same9, sameline0, sameline1, sameline2, sameline3, sameline4, sameline5, sameline6, sameline7, sameline8, sameline9, star0, star1, star2, star3, star4, star5, star6, star7, star8, star9, supersmall0, supersmall1, supersmall2, supersmall3, supersmall4, supersmall5, supersmall6, supersmall7, supersmall8, supersmall9 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
doublestar0 | AC | 134 ms | 41208 KB |
doublestar1 | AC | 124 ms | 40568 KB |
doublestar2 | AC | 126 ms | 40952 KB |
doublestar3 | AC | 122 ms | 40440 KB |
doublestar4 | AC | 131 ms | 41464 KB |
doublestar5 | AC | 134 ms | 41592 KB |
doublestar6 | AC | 122 ms | 40440 KB |
doublestar7 | AC | 121 ms | 40440 KB |
example0 | AC | 5 ms | 12544 KB |
example1 | AC | 4 ms | 12544 KB |
example2 | AC | 5 ms | 12544 KB |
example3 | AC | 4 ms | 12544 KB |
example4 | AC | 5 ms | 12544 KB |
giri0 | AC | 186 ms | 41856 KB |
giri1 | AC | 188 ms | 40704 KB |
giri2 | AC | 193 ms | 40832 KB |
giri3 | AC | 185 ms | 40832 KB |
giri4 | AC | 191 ms | 40704 KB |
giri5 | AC | 194 ms | 41216 KB |
giri6 | AC | 192 ms | 41216 KB |
giri7 | AC | 187 ms | 41088 KB |
giri8 | AC | 193 ms | 40960 KB |
giri9 | AC | 189 ms | 41216 KB |
maxrand0 | AC | 151 ms | 41216 KB |
maxrand1 | AC | 148 ms | 41088 KB |
maxrand2 | AC | 152 ms | 41344 KB |
maxrand3 | AC | 147 ms | 40960 KB |
maxrand4 | AC | 145 ms | 40704 KB |
maxrand5 | AC | 145 ms | 40704 KB |
maxrand6 | AC | 145 ms | 40704 KB |
maxrand7 | AC | 149 ms | 41088 KB |
maxrand8 | AC | 143 ms | 40576 KB |
maxrand9 | AC | 154 ms | 40960 KB |
narashi0 | AC | 183 ms | 40448 KB |
narashi1 | AC | 184 ms | 40576 KB |
narashi2 | AC | 181 ms | 40704 KB |
narashi3 | AC | 181 ms | 40960 KB |
narashi4 | AC | 189 ms | 40832 KB |
narashi5 | AC | 181 ms | 41088 KB |
narashi6 | AC | 188 ms | 40704 KB |
narashi7 | AC | 192 ms | 41344 KB |
narashi8 | AC | 190 ms | 41088 KB |
narashi9 | AC | 183 ms | 40704 KB |
ok0 | AC | 203 ms | 47996 KB |
ok1 | AC | 213 ms | 49148 KB |
ok2 | AC | 202 ms | 46076 KB |
ok3 | AC | 217 ms | 49404 KB |
ok4 | AC | 172 ms | 44032 KB |
ok5 | AC | 235 ms | 46844 KB |
ok6 | AC | 198 ms | 46588 KB |
ok7 | AC | 226 ms | 46336 KB |
ok8 | AC | 213 ms | 47740 KB |
ok9 | AC | 198 ms | 46716 KB |
ouh0 | AC | 161 ms | 42496 KB |
ouh1 | AC | 188 ms | 43136 KB |
ouh2 | AC | 174 ms | 43136 KB |
ouh3 | AC | 190 ms | 44032 KB |
ouh4 | AC | 198 ms | 43520 KB |
ouh5 | AC | 200 ms | 46716 KB |
ouh6 | AC | 200 ms | 47868 KB |
ouh7 | AC | 185 ms | 43008 KB |
ouh8 | AC | 202 ms | 46460 KB |
ouh9 | AC | 202 ms | 47996 KB |
same0 | AC | 199 ms | 40960 KB |
same1 | AC | 201 ms | 40832 KB |
same2 | AC | 153 ms | 41216 KB |
same3 | AC | 157 ms | 41216 KB |
same4 | AC | 156 ms | 40704 KB |
same5 | AC | 203 ms | 40704 KB |
same6 | AC | 158 ms | 40960 KB |
same7 | AC | 204 ms | 40704 KB |
same8 | AC | 150 ms | 40576 KB |
same9 | AC | 258 ms | 41216 KB |
sameline0 | AC | 238 ms | 48384 KB |
sameline1 | AC | 270 ms | 50176 KB |
sameline2 | AC | 199 ms | 46464 KB |
sameline3 | AC | 216 ms | 47488 KB |
sameline4 | AC | 189 ms | 48384 KB |
sameline5 | AC | 243 ms | 48512 KB |
sameline6 | AC | 206 ms | 45440 KB |
sameline7 | AC | 251 ms | 50688 KB |
sameline8 | AC | 212 ms | 46848 KB |
sameline9 | AC | 218 ms | 45824 KB |
star0 | AC | 140 ms | 41844 KB |
star1 | AC | 150 ms | 41844 KB |
star2 | AC | 105 ms | 41844 KB |
star3 | AC | 137 ms | 41844 KB |
star4 | AC | 139 ms | 41972 KB |
star5 | AC | 164 ms | 42100 KB |
star6 | AC | 106 ms | 42100 KB |
star7 | AC | 138 ms | 41844 KB |
star8 | AC | 139 ms | 41844 KB |
star9 | AC | 164 ms | 42356 KB |
supersmall0 | AC | 5 ms | 12544 KB |
supersmall1 | AC | 5 ms | 12544 KB |
supersmall2 | AC | 5 ms | 12544 KB |
supersmall3 | AC | 5 ms | 12544 KB |
supersmall4 | AC | 5 ms | 12544 KB |
supersmall5 | AC | 5 ms | 12544 KB |
supersmall6 | AC | 5 ms | 12544 KB |
supersmall7 | AC | 5 ms | 12544 KB |
supersmall8 | AC | 5 ms | 12544 KB |
supersmall9 | AC | 4 ms | 12544 KB |