제출 #53840

#제출 시각아이디문제언어결과실행 시간메모리
53840grumpy_gordonCity (JOI17_city)C++17
100 / 100
531 ms64544 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #include "Encoder.h" const int maxn = 5e5 + 10; const double w = 1.05; vector<int> e[maxn]; int t; void dfs(int v, int par){ int tin = t++; for (int i : e[v]) if (i != par) dfs(i, v); int val = 0; double kek = 1; while ((int)kek < t - tin) val++, kek *= w; t = tin + (int)kek; Code(v, val * (ll)maxn + tin); } void Encode(int N, int A[], int B[]) { int n = N; for (int i = 0; i < n - 1; i++){ int v = A[i], u = B[i]; e[v].push_back(u); e[u].push_back(v); } dfs(0, -1); }
#include <bits/stdc++.h> using namespace std; typedef long long ll; #include "Encoder.h" const int maxn = 5e5 + 10; const double w = 1.05; double mas[2000]; void InitDevice(){ mas[0] = 1; for (int i = 1; i < 2000; i++) mas[i] = mas[i - 1] * w; } int Answer(long long S, long long T) { int a = S / maxn, b = S % maxn, c = T / maxn, d = T % maxn; a = b + (int)mas[a] - 1; c = d + (int)mas[c] - 1; if (a >= c && b <= d) return 1; if (a <= c && b >= d) return 0; return 2; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...