제출 #1200916

#제출 시각아이디문제언어결과실행 시간메모리
1200916PlayVoltzStrange Device (APIO19_strange_device)C++20
35 / 100
449 ms63128 KiB
#include <cstdio> #include <stdio.h> #include <stdbool.h> #include <iostream> #include <map> #include <vector> #include <climits> #include <stack> #include <string> #include <queue> #include <algorithm> #include <set> #include <unordered_set> #include <unordered_map> #include <cmath> #include <cctype> #include <bitset> #include <iomanip> #include <cstring> #include <numeric> #include <cassert> using namespace std; #define int long long #define pii pair<int, int> #define mp make_pair #define pb push_back #define fi first #define se second int32_t main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, a, b, ans=0, low=LLONG_MIN/2, high=LLONG_MIN/2-1; cin>>n>>a>>b; __int128 m=a*b/gcd(a, b+1); set<pii> s; while (n--){ cin>>a>>b; if (b-a+1>=m){ cout<<(int)m; return 0; } a%=m, b%=m; if (a<=b)s.insert(mp(a, b)); else s.insert(mp(0, b)), s.insert(mp(a, m-1)); } for (auto it=s.begin(); it!=s.end(); ++it){ if (it->fi<=high)high=max(high, it->se); else ans+=high-low+1, low=it->fi, high=it->se; } cout<<ans+high-low+1; }
#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...