# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1281005 | StefanSebez | 이상한 기계 (APIO19_strange_device) | C++20 | 324 ms | 17108 KiB |
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define ll long long
#define ld long double
#define mp make_pair
const ll inf=1e18;
int main(){
int n;ll A,B;scanf("%i%lld%lld",&n,&A,&B);
ll T=A/(__gcd(A,B+1));
if(T>inf/B+50){
ll res=0;
for(int i=1;i<=n;i++){
ll l,r;scanf("%lld%lld",&l,&r);
res+=r-l+1;
}
printf("%lld\n",res);
return 0;
}
T*=B;
ll res=0;
vector<pair<ll,ll>>itv;
for(int i=1;i<=n;i++){
ll l,r;scanf("%lld%lld",&l,&r);
ll d=r-l+1;
l%=T;
if(d>=T) itv.pb({0,T-1});
else if(l+d-1<=T-1) itv.pb({l,l+d-1});
else{
itv.pb({l,T-1});
d-=T-1-l+1;
itv.pb({0,d-1});
}
}
sort(itv.begin(),itv.end());
ll prvi=0,maks=-1;
for(ll i=0;i<itv.size();i++){
if(itv[i].fi>maks){
res+=maks-prvi+1;
prvi=itv[i].fi;
}
maks=max(maks,itv[i].se);
}
res+=maks-prvi+1;
printf("%lld\n",res);
return 0;
}
Compilation message (stderr)
# | 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... |