이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#pragma GCC optimize("unroll-loops,Ofast,O3")
#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define spc << " " <<
#define endl "\n"
#define all(x) x.begin(), x.end()
#define int long long
#define ii pair<long long,int>
#define vi vector<int>
#define vii vector<ii>
#define st first
#define nd second
#define inf 1e15
#define MOD 1000000007
#define MX 200005
using namespace std;
void solve(){
int n,A,B; cin >> n >> A >> B;
vii seg;
A = A/__gcd(B+1, A);
if(sqrt(A)*sqrt(B)>=1e9){
int ans=0;
for(int i=1; i<=n; i++){
int l,r; cin >> l >> r;
ans+=r-l+1;
}
cout << ans << endl;
return;
}
int wow = A*B;
//cerr << wow << endl;
for(int i=1; i<=n; i++){
int l,r; cin >> l >> r;
if(r-l+1>=wow){
cout << wow << endl;
return;
}
l%=wow; r%=wow;
if(r>=l) seg.pb({l,r});
else{
seg.pb({0,r});
seg.pb({l, wow-1});
}
}
sort(all(seg));
int ans=0, cur=-1;
for(auto p:seg){
//cerr << p.st spc p.nd << endl;
ans += max((int)0, min(p.nd-p.st+1, p.nd-cur));
cur = max(cur, p.nd);
}
cout << ans << endl;
}
signed main(){
ios_base::sync_with_stdio(false);cin.tie(0);
#ifdef Local
freopen("in","r",stdin);
freopen("out","w",stdout);
#endif
/*freopen("nondec.in","r",stdin);
freopen("nondec.out","w",stdout);*/
int t=1;
//cin >> t;
while(t--) solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |