Submission #1217963

#TimeUsernameProblemLanguageResultExecution timeMemory
1217963veplsnxStrange Device (APIO19_strange_device)C++20
100 / 100
290 ms16988 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define u128 unsigned __int128 #define i128 __int128 #define len(x) (int)x.size() #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define pb push_back #define eb emplace_back #define mt make_tuple #define mp make_pair #define pii pair<int, int> #define pll pair<ll, ll> #define pli pair<ll, int> #define pil pair<int, ll> #define ff first #define ss second const ll inf = 9e18; const int iinf = 2e9; const int N = 1e5; const ll MOD = 1e9 + 7; void solution(){ int n; ll a, b; cin >> n >> a >> b; a /= __gcd(a, b + 1); i128 T = (i128)b * a; vector<pair<ll, ll>> segs; for (int i = 0; i < n; ++i){ ll l, r; cin >> l >> r; if (r - l + 1 >= T){ segs.pb(mp(0, T - 1)); } else{ ll m_l = l % T, m_r = r % T; if (m_l <= m_r){ segs.pb(mp(m_l, m_r)); } else{ segs.pb(mp(m_l, T - 1)); segs.pb(mp(0, m_r)); } } } sort(all(segs)); ll l = segs[0].ff, r = segs[0].ss; ll ans = 0; for (int i = 1; i < len(segs); ++i){ if (segs[i].ff > r){ ans += (r - l + 1); l = segs[i].ff; r = segs[i].ss; } else{ r = max(r, segs[i].ss); } } ans += r - l + 1; cout << ans; } signed main(/* Kurmankul Nurislam */){ //freopen("fcolor.in", "r", stdin); //freopen("fcolor.out", "w", stdout); cin.tie(nullptr) -> sync_with_stdio(false); int t = 1; //cin >> t; while (t--){ solution(); //cout << '\n'; } }
#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...