Submission #1044804

#TimeUsernameProblemLanguageResultExecution timeMemory
1044804efedmrlrStrange Device (APIO19_strange_device)C++17
65 / 100
281 ms39636 KiB
// #pragma GCC optimize("O3,Ofast,unroll-loops") // #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include <bits/stdc++.h> using namespace std; #define int long long int #define MP make_pair #define pb push_back #define REP(i,n) for(int i = 0; (i) < (n); (i)++) #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() void fastio() { ios_base::sync_with_stdio(false); cin.tie(NULL); } const double EPS = 0.00001; const int INF = 1e18 + 5; const int N = 3e5+5; const int ALPH = 26; const int LGN = 25; constexpr int MOD = 1e9+7; int n,m,q; inline void solve() { int A, B; cin >> n >> A >> B; __int128_t space = (__int128_t)A / __gcd(A, B + 1) * B; space = min(space, (__int128_t)INF); int sp = (int)space; vector<array<int, 2> > inter; REP(i, n) { int l, r; cin >> l >> r; l %= sp; r %= sp; if(l > r) { inter.pb({0, r}); inter.pb({l, sp - 1}); } else { inter.pb({l, r}); } } int last = 0; int ans = 0; sort(all(inter)); for(auto c : inter) { c[0] = max(last, c[0]); if(c[0] > c[1]) continue; ans += c[1] - c[0] + 1; last = c[1] + 1; } cout << ans << "\n"; } signed main() { fastio(); int test = 1; //cin>>test; while(test--) { solve(); } }
#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...