Submission #210034

#TimeUsernameProblemLanguageResultExecution timeMemory
210034gratus907Strange Device (APIO19_strange_device)C++17
100 / 100
763 ms100412 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #define usecppio ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define all(x) ((x).begin()),((x).end()) #define int __int128 using pii = pair <int, int>; #define INF 0x7f7f7f7f7f7f7f7f const bool debug = false; std::ostream&operator<<( std::ostream& dest, __int128_t value ) { std::ostream::sentry s( dest ); if ( s ) { __uint128_t tmp = value < 0 ? -value : value; char buffer[ 128 ]; char* d = std::end( buffer ); do { -- d; *d = "0123456789"[ tmp % 10 ]; tmp /= 10; } while ( tmp != 0 ); if ( value < 0 ) { -- d; *d = '-'; } int len = std::end( buffer ) - d; if ( dest.rdbuf()->sputn( d, len ) != len ) { dest.setstate( std::ios_base::badbit ); } } return dest; } int n, a, b; int period; vector <pii> v; vector <pii> range; int32_t main() { usecppio ll _n, _a, _b; cin >> _n >> _a >> _b; n = _n, a = _a, b = _b; period = (a/(__gcd(a, b+1)))*b; for (int i = 0; i<n; i++) { ll l, r; cin >> l >> r; v.push_back({l, r}); if (r - l + 1 >= period) { cout << period << '\n'; return 0; } if (l%period <= r%period) { range.push_back({l%period, r%period}); } else { range.push_back({0, r%period}); range.push_back({l%period, period-1}); } } sort(all(range)); int start = range[0].first; int end = range[0].second; int ans = 0; for (int i = 1; i<range.size(); i++) { if (range[i].first > end) { ans += end-start+1; start = range[i].first; end = range[i].second; } else end = max(end, range[i].second); } ans += end-start+1; cout << ans << '\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...