Submission #243702

#TimeUsernameProblemLanguageResultExecution timeMemory
243702neihcr7j이상한 기계 (APIO19_strange_device)C++14
100 / 100
899 ms69016 KiB
#include<bits/stdc++.h> #define maxn 100005 using namespace std; typedef long long ll; ll n, a, b; ll ret; int main(){ #define TASK "ABC" // freopen(TASK".inp", "r", stdin); freopen(TASK".out", "w", stdout); ios_base::sync_with_stdio(0); cin >> n >> a >> b; ret = __gcd(a, b + 1); ret = a / ret; if (sqrt(ret) * sqrt(b) > 1e9) { ll ans = 0; for (int i = 0; i < n; ++i) { ll l, r; cin >> l >> r; ans += r + 1; ans -= l; } cout << ans; return 0; } ret *= b; vector < pair < ll, int > > q; for (int i = 0; i < n; ++i) { ll l, r; cin >> l >> r; if (r - l + 1 >= ret) { cout << ret; return 0; } l %= ret; r %= ret; if (l <= r) { q.push_back({l, 1}); q.push_back({r + 1, -1}); } else { q.push_back({0, 1}); q.push_back({r + 1, -1}); q.push_back({l, 1}); q.push_back({ret, -1}); } } sort(q.begin(), q.end()); ll ans = 0, cnt = 0; for (int i = 0; i + 1 < q.size(); ++i) { cnt += q[i].second; if (cnt) ans += q[i + 1].first - q[i].first; } cout << ans; return 0; }

Compilation message (stderr)

strange_device.cpp: In function 'int main()':
strange_device.cpp:65:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i + 1 < q.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...