Submission #222717

#TimeUsernameProblemLanguageResultExecution timeMemory
222717shart23Strange Device (APIO19_strange_device)C++14
10 / 100
5058 ms524292 KiB
#include <bits/stdc++.h> #define int long long #define endl "\n" using namespace std; int clever(int n, int a, int b, vector<pair<int, int>> &seg) { long double k1 = a * (long double) b; int k = (int) 1e18 + 1; if (k1 <= 1e18) { k = a; } vector<pair<int, int>> segs; for (int i = 0; i < n; i++) { int l = seg[i].first, r = seg[i].second; if (r - l + 1 >= k) { segs.emplace_back(0, k - 1); continue; } int l1 = l % k, r1 = r % k; if (r1 < l1) { segs.emplace_back(0, r1); segs.emplace_back(l1, k - 1); } else { segs.emplace_back(l1, r1); } } sort(segs.begin(), segs.end()); int mxr = -1; int res = 0; for (auto x : segs) { res += max(x.second - max(mxr, x.first - 1), 0LL); mxr = max(x.second, mxr); } return res; } int stupid(int n, int a, int b, vector<pair<int, int>> &seg) { set<pair<int, int>> ans; for (int i = 0; i < n; i++) { int l = seg[i].first, r = seg[i].second; for (int j = l; j <= r; j++) { ans.insert({(j + j / b) % a, j % b}); } } return ans.size(); } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n, a, b; cin >> n >> a >> b; vector<pair<int, int>> seg(n); for (auto &x : seg) { cin >> x.first >> x.second; } cout << stupid(n, a, b, seg) << endl; }
#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...