Submission #16043

#TimeUsernameProblemLanguageResultExecution timeMemory
16043hongjun7Computer Network (BOI14_network)C++98
75 / 100
156 ms5084 KiB
#include "network.h" #include <algorithm> using namespace std; int d[2005], c[2005]; void findRoute(int N, int a, int b) { int dist = ping(a, b); for (int i = 1; i <= N; i++) d[i] = c[i] = 0; for (int i = 1; i <= N; i++) if (i != a) c[i] = d[i] = ping(a, i) + 1; sort(c + 1, c + N + 1); bool ok = 1; for (int i = 2; i <= N; i++) if (c[i] - c[i - 1] != 1) ok = 0; if (ok) { for (int i = 1; i <= dist; i++) { for (int j = 1; j <= N; j++) { if (d[j] - d[a] == 1) { int v = ping(j, b); if (dist == v + d[a] + 1) { a = j; travelTo(j); break; } } } } travelTo(b); } else { for (int i = 1; i <= dist; i++) { for (int j = 1; j <= N; j++) { if (d[j] - d[a] == 1) { int v = ping(j, b); if (dist == v + d[a] + 1 && ping(a, j) == 0) { a = j; travelTo(j); break; } } } } travelTo(b); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...