Submission #1159767

#TimeUsernameProblemLanguageResultExecution timeMemory
1159767gohchingjaykJanjetina (COCI21_janjetina)C++20
0 / 110
337 ms589824 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define int ll constexpr int INF = 1ull << 60; int w[100000 + 5]; int N, K; struct Node { Node *left = nullptr, *right = nullptr; int l, r, m; int val; Node(int a, int b) { l = a, r = b, m = (l + r) >> 1; if (l == r) { //val = w[l]; } else { left = new Node(l, m); right = new Node(m + 1, r); //val = max(left->val, right->val); } } int rmq(int start) { if (r < start) return 0; if (start <= l) { int len = r - start + 1; if (w[l] - len >= K) return r - l + 1; if (l == r) return 0; return left->rmq(start) + right->rmq(start); } return left->rmq(start) + right->rmq(start); } }; Node *segtree; signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin >> N >> K; for (int i = 0; i < N - 1; ++i) cin >> w[i] >> w[i] >> w[i]; segtree = new Node(0, N - 2); int cnt = 0; for (int i = 0; i < N - 1; ++i) { cnt += segtree->rmq(i) * 2; } cout << cnt; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...