Submission #905774
Source Code Expand
#include <cstdio> #include <vector> using namespace std; const int N = 200500; vector<int> E[N]; vector<int> F[N]; const int LGN = 18; int up[LGN][N]; int D[N]; void DFS(int x, int p = -1) { D[x] = (p == -1) ? 0 : D[p] + 1; up[0][x] = (p == -1) ? x : p; for (int d = 1; d < LGN; d++) up[d][x] = up[d - 1][up[d - 1][x]]; for (int y : E[x]) { if (y != p) DFS(y, x); } } inline int lca(int a, int b) { if (D[a] > D[b]) { swap(a, b); } for (int d = LGN - 1; d >= 0; d--) if (D[up[d][b]] >= D[a]) b = up[d][b]; if (a == b) return a; for (int d = LGN - 1; d >= 0; d--) if (up[d][a] != up[d][b]) a = up[d][a], b = up[d][b]; return up[0][a]; } inline int dist(int a, int b) { int l = lca(a, b); return D[a] + D[b] - 2 * D[l]; } bool infinite(int x) { for (int y : F[x]) { if (dist(x, y) >= 3) return true; } return false; } bool isinfinite = false; int best = 0; int s, t; void DFS2(int x, int p = -1, int d = 0) { best = max(best, dist(t, x)); if (infinite(x)) { isinfinite = true; return; } for (int y : F[x]) { if (y == p) continue; if (d + 1 < dist(t, y)) { DFS2(y, x, d + 1); if (isinfinite) return; } } } int main() { int n; scanf("%d %d %d", &n, &s, &t); --s, --t; for (int i = 0; i < n - 1; i++) { int a, b; scanf("%d %d", &a, &b); --a, --b; F[a].push_back(b); F[b].push_back(a); } for (int i = 0; i < n - 1; i++) { int a, b; scanf("%d %d", &a, &b); --a, --b; E[a].push_back(b); E[b].push_back(a); } DFS(0); DFS2(s); if (isinfinite) { printf("%d\n", -1); } else { printf("%d\n", 2 * best); } }
Submission Info
Submission Time | |
---|---|
Task | E - Sugigma: The Showdown |
User | Zlobober |
Language | C++14 (GCC 5.4.1) |
Score | 1400 |
Code Size | 2031 Byte |
Status | AC |
Exec Time | 540 ms |
Memory | 45952 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:78:34: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d %d", &n, &s, &t); ^ ./Main.cpp:82:31: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d", &a, &b); ^ ./Main.cpp:89:31: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d", &a, &b); ^
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 | 203 ms | 36984 KB |
doublestar1 | AC | 190 ms | 35704 KB |
doublestar2 | AC | 191 ms | 36600 KB |
doublestar3 | AC | 183 ms | 35448 KB |
doublestar4 | AC | 201 ms | 37496 KB |
doublestar5 | AC | 207 ms | 37624 KB |
doublestar6 | AC | 178 ms | 35448 KB |
doublestar7 | AC | 182 ms | 35704 KB |
example0 | AC | 12 ms | 9728 KB |
example1 | AC | 12 ms | 9728 KB |
example2 | AC | 12 ms | 9728 KB |
example3 | AC | 12 ms | 9728 KB |
example4 | AC | 12 ms | 9728 KB |
giri0 | AC | 261 ms | 37888 KB |
giri1 | AC | 359 ms | 36352 KB |
giri2 | AC | 271 ms | 36736 KB |
giri3 | AC | 364 ms | 36480 KB |
giri4 | AC | 383 ms | 36480 KB |
giri5 | AC | 380 ms | 37376 KB |
giri6 | AC | 390 ms | 37248 KB |
giri7 | AC | 407 ms | 36864 KB |
giri8 | AC | 284 ms | 36864 KB |
giri9 | AC | 292 ms | 37120 KB |
maxrand0 | AC | 226 ms | 37376 KB |
maxrand1 | AC | 224 ms | 36992 KB |
maxrand2 | AC | 227 ms | 37504 KB |
maxrand3 | AC | 220 ms | 36736 KB |
maxrand4 | AC | 215 ms | 36224 KB |
maxrand5 | AC | 218 ms | 36352 KB |
maxrand6 | AC | 216 ms | 36352 KB |
maxrand7 | AC | 219 ms | 36992 KB |
maxrand8 | AC | 210 ms | 36224 KB |
maxrand9 | AC | 225 ms | 36992 KB |
narashi0 | AC | 347 ms | 35968 KB |
narashi1 | AC | 342 ms | 36096 KB |
narashi2 | AC | 331 ms | 36224 KB |
narashi3 | AC | 332 ms | 36736 KB |
narashi4 | AC | 351 ms | 36992 KB |
narashi5 | AC | 337 ms | 36864 KB |
narashi6 | AC | 347 ms | 36608 KB |
narashi7 | AC | 338 ms | 37376 KB |
narashi8 | AC | 353 ms | 37248 KB |
narashi9 | AC | 353 ms | 36352 KB |
ok0 | AC | 342 ms | 42364 KB |
ok1 | AC | 375 ms | 44156 KB |
ok2 | AC | 367 ms | 40316 KB |
ok3 | AC | 367 ms | 41596 KB |
ok4 | AC | 255 ms | 38912 KB |
ok5 | AC | 332 ms | 40572 KB |
ok6 | AC | 317 ms | 40956 KB |
ok7 | AC | 283 ms | 39168 KB |
ok8 | AC | 368 ms | 42108 KB |
ok9 | AC | 344 ms | 40444 KB |
ouh0 | AC | 265 ms | 37504 KB |
ouh1 | AC | 268 ms | 38656 KB |
ouh2 | AC | 293 ms | 37376 KB |
ouh3 | AC | 301 ms | 39424 KB |
ouh4 | AC | 323 ms | 38912 KB |
ouh5 | AC | 324 ms | 39420 KB |
ouh6 | AC | 346 ms | 41340 KB |
ouh7 | AC | 278 ms | 37632 KB |
ouh8 | AC | 364 ms | 39676 KB |
ouh9 | AC | 348 ms | 41084 KB |
same0 | AC | 400 ms | 36992 KB |
same1 | AC | 412 ms | 36608 KB |
same2 | AC | 259 ms | 37376 KB |
same3 | AC | 270 ms | 37376 KB |
same4 | AC | 251 ms | 36224 KB |
same5 | AC | 430 ms | 36352 KB |
same6 | AC | 260 ms | 36736 KB |
same7 | AC | 396 ms | 36352 KB |
same8 | AC | 220 ms | 36096 KB |
same9 | AC | 435 ms | 37248 KB |
sameline0 | AC | 409 ms | 43520 KB |
sameline1 | AC | 540 ms | 44800 KB |
sameline2 | AC | 341 ms | 45056 KB |
sameline3 | AC | 429 ms | 42112 KB |
sameline4 | AC | 312 ms | 43392 KB |
sameline5 | AC | 455 ms | 43136 KB |
sameline6 | AC | 326 ms | 41728 KB |
sameline7 | AC | 425 ms | 44288 KB |
sameline8 | AC | 348 ms | 43904 KB |
sameline9 | AC | 376 ms | 45952 KB |
star0 | AC | 235 ms | 37620 KB |
star1 | AC | 265 ms | 37492 KB |
star2 | AC | 136 ms | 37620 KB |
star3 | AC | 250 ms | 37492 KB |
star4 | AC | 235 ms | 37748 KB |
star5 | AC | 372 ms | 38004 KB |
star6 | AC | 148 ms | 38004 KB |
star7 | AC | 252 ms | 37748 KB |
star8 | AC | 309 ms | 37492 KB |
star9 | AC | 296 ms | 38388 KB |
supersmall0 | AC | 12 ms | 9728 KB |
supersmall1 | AC | 12 ms | 9728 KB |
supersmall2 | AC | 12 ms | 9728 KB |
supersmall3 | AC | 12 ms | 9728 KB |
supersmall4 | AC | 12 ms | 9728 KB |
supersmall5 | AC | 12 ms | 9728 KB |
supersmall6 | AC | 12 ms | 9856 KB |
supersmall7 | AC | 12 ms | 9728 KB |
supersmall8 | AC | 12 ms | 9728 KB |
supersmall9 | AC | 12 ms | 9728 KB |