제출 #783419

#제출 시각아이디문제언어결과실행 시간메모리
783419christinelynn이상한 기계 (APIO19_strange_device)C++17
10 / 100
611 ms524288 KiB
#include <bits/stdc++.h> #define int long long #define fi first #define se second using namespace std; const int INFF = 2e18; struct node { int val, lz; int st, en, len; node *left, *right; void build(int start, int end) { st = start; en = end; len = en - st + 1; val = 0; lz = 0; } void lazy() { if (left == NULL && right == NULL) { left = new node(); right = new node(); int md = (st + en) / 2; left->build(st, md); right->build(md + 1, en); } if (lz == 1) { left->lz = lz; left->val = lz * left->len; right->lz = lz; right->val = lz * right->len; lz = 0; } } void update(int lf, int rg) { if (st > rg || en < lf) return; if (lf <= st && en <= rg) { lz = 1; val = len; return; } lazy(); left->update(lf, rg); right->update(lf, rg); val = left->val + right->val; } } sg; int32_t main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, a, b; cin >> n >> a >> b; /* 0 0 0 0 1 1 1 1 2 2 2 2 4 3 1 0 5 4 2 1 6 5 0 2 8 6 2 0 9 7 0 1 10 8 1 2 12 9 0 0 */ if (a > INFF / b) { sg.build(0, INFF); } else { sg.build(0, a * b - 1); } for (int i = 0; i < n; i++) { int l, r; cin >> l >> r; if (a <= INFF / b && r - l + 1 >= a * b) { cout << a * b << '\n'; return 0; } if (a <= INFF / b) { l %= a * b; r %= a * b; } if (l <= r) { // cout << l << " " << r << '\n'; sg.update(l, r); } else { // cout << l << " " << a * b - 1 << '\n'; sg.update(l, a * b - 1); // cout << 0 << " " << r << '\n'; sg.update(0, r); } } cout << sg.val << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...