Submission #712752

#TimeUsernameProblemLanguageResultExecution timeMemory
712752HuyQuang_re_ZeroStrange Device (APIO19_strange_device)C++14
10 / 100
671 ms68940 KiB
#include <bits/stdc++.h> #define ll long long #define db long double #define N 4000002 #define II pair <ll,ll> #define fst first #define snd second using namespace std; ll n,a,b,l,r,m,i; II c[N]; void sub1() { ll res=0; for(i=1;i<=n;i++) cin>>l>>r,res+=(r-l+1); cout<<res; } void add(ll l,ll r) { c[++m]={ l,1 }; c[++m]={ r,-1 }; } void sub2() { for(i=1;i<=n;i++) { cin>>l>>r; if(r-l+1>=a*b) { cout<<a*b; return ; } l=l%(a*b); r=r%(a*b); if(l<=r) add(l,r); else add(l,a*b-1),add(0,r); } sort(c+1,c+m+1); c[0]={ -1,1 }; ll cnt=0,res=0; for(i=1;i<=m;i++) { if(c[i].fst>c[i-1].fst) { if(cnt>0) res+=c[i].fst-c[i-1].fst; else res++; } cnt+=c[i].snd; } cout<<res; } int main() { // freopen("ntu.inp","r",stdin); //freopen("ntu.out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>a>>b; if(b>round(1e18)/a) sub1(); else sub2(); }
#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...