제출 #1305794

#제출 시각아이디문제언어결과실행 시간메모리
1305794basicConstruction of Highway (JOI18_construction)C++20
16 / 100
2094 ms3976 KiB
#pragma GCC optimize("Ofast,unroll-loops") #include <bits/stdc++.h> #define A(v) v.begin(), v.end() using namespace std; using ll = long long; ll n, c[101010], a, b, p[101010], f[101010], r; vector<ll> v; int main() { cin.tie(0)->sync_with_stdio(0); cin >> n; for (int i = 1; i <= n; v.push_back(c[i++])) cin >> c[i]; sort(A(v)), v.erase(unique(A(v)), v.end()); for (int i = 1; i <= n; i++) c[i] = upper_bound(A(v), c[i]) - v.begin(); for (int i = 1; i < n; p[b] = a, i++) { cin >> a >> b; fill(f, f + n + 1, r = 0); for (int i = a; i; i = p[i]) { for (int k = c[i] - 1; k > 0; k -= k & -k) r += f[k]; for (int k = c[i]; k <= n; k += k & -k) f[k]++; c[i] = c[b]; } cout << r << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...