Submission #147762

#TimeUsernameProblemLanguageResultExecution timeMemory
147762kuroniStrange Device (APIO19_strange_device)C++17
100 / 100
1028 ms19084 KiB
#include <bits/stdc++.h> using namespace std; const long long INF = 2E18; vector<long long> ve; int n; long long a, b, l, r, cyc, ans = 0; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> a >> b; a /= __gcd(a, b + 1); if (INF / a >= b) cyc = a * b; else cyc = INF; while (n--) { cin >> l >> r; if (r - l + 1 >= cyc) { ve.push_back(0); ve.push_back(-cyc); } else { l %= cyc; r %= cyc; ve.push_back(l); ve.push_back(-r - 1); if (l > r) { ve.push_back(0); ve.push_back(-cyc); } } } sort(ve.begin(), ve.end(), [](const long long &a, const long long &b) { return abs(a) < abs(b); }); int cnt = 0; for (int i = 0; i < ve.size(); i++) { if (cnt > 0) ans += abs(ve[i]) - abs(ve[i - 1]); cnt += ve[i] / abs(ve[i]); } cout << ans; }

Compilation message (stderr)

strange_device.cpp: In function 'int main()':
strange_device.cpp:44:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < ve.size(); i++)
                     ~~^~~~~~~~~~~
#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...