Submission #259234

#TimeUsernameProblemLanguageResultExecution timeMemory
259234GoolakhStrange Device (APIO19_strange_device)C++17
100 / 100
1020 ms70908 KiB
// FUCKED UP FUCKED UP FUCKED UP FUCKED UP FUCKED UP
#include <bits/stdc++.h>
using namespace std;

#pragma GCC optimize("O2,no-stack-protector,unroll-loops,fast-math")

#define F first
#define S second
#define pb push_back
#define SZ(x) (ll)(x.size())
#define all(x) x.begin(),x.end()
#define MP make_pair

typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pll;

//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

const ll maxn=1e6+10, maxm=1e6+10, lg=21, mod=998244353, inf=1e18+10;

ll n,A,B,m;
map<ll,ll> ss;

int main(){
	ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	
	cin>>n>>A>>B;
	ll g=__gcd(A,B+1);
	m=A/g;
	if(B>inf/m+10) m=inf;
	else m*=B;
	while(n--){
		ll l,r; cin>>l>>r; r++;
		if(r-l>=m) return cout<<m,0;
		l%=m, r%=m;
		ss[l]++, ss[r]--;
		if(l>=r) ss[0]++, ss[m]--;
	}
	ll ans=0,ls=0,ps=0;
	for(auto x:ss){
		if(ps) ans+=x.F-ls;
		ls=x.F, ps+=x.S;
	}
	cout<<ans;
	
	return 0;
}



 
#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...