Submission #721549

#TimeUsernameProblemLanguageResultExecution timeMemory
721549joelgun14Strange Device (APIO19_strange_device)C++17
10 / 100
864 ms66104 KiB
#include <bits/stdc++.h> #define ll long long #define lll __int128 #define endl "\n" using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); ll n, a, b; cin >> n >> a >> b; // a or b has certain pattern // ab -> 1 cycle, no duplikat // next cycle: sama persis // maintain cycles in terms of ab, merge all segments // find modulo ab // exist more than one cycle long -> all possible // size ab berarti diff >= ab - 1 vector<pair<lll, bool>> sweep; ll ans = -1; for(int i = 1; i <= n; ++i) { ll l, r; cin >> l >> r; if(r - l >= (lll)1 * a * b) { ans = (lll)1 * a * b; } else { l %= (lll)1 * a * b; r %= (lll)1 * a * b; if(l <= r) { sweep.push_back(make_pair(l, 0)); sweep.push_back(make_pair(r, 1)); } else { sweep.push_back(make_pair(0, 0)); sweep.push_back(make_pair(l, 0)); sweep.push_back(make_pair((lll)a * b - 1, 1)); sweep.push_back(make_pair(r, 1)); } } } if(ans != -1) cout << ans << endl, exit(0); sort(sweep.begin(), sweep.end()); int cnt = 0; ll st; ans = 0; for(auto i : sweep) { if(i.second) { // end --cnt; if(cnt == 0) ans += i.first - st; } else { // start // start itu + cnt // set start kalo belum di set if(cnt == 0) st = i.first - 1; ++cnt; } } cout << ans << endl; }

Compilation message (stderr)

strange_device.cpp: In function 'int main()':
strange_device.cpp:51:32: warning: 'st' may be used uninitialized in this function [-Wmaybe-uninitialized]
   51 |                 ans += i.first - st;
      |                        ~~~~~~~~^~~~
#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...