제출 #139785

#제출 시각아이디문제언어결과실행 시간메모리
139785FedericoS이상한 기계 (APIO19_strange_device)C++14
5 / 100
3045 ms176760 KiB
#include <iostream>
#include <set>
//#include <iomanip>
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef pair<ll,ll> pll;

ll N,A,B;
ll L[1000006],R[1000006];
ll x,y;
set<pll> S;
ll G;
ll ans;
ll P[1000006];

bool is_in(ll x){
	return P[x];
}

int main(){
	cin>>N>>A>>B;
	G=A/__gcd(A,B+1);
	ll M=(A*B);
	for(int i=0;i<N;i++){
		cin>>L[i]>>R[i];
		x=L[i]%M;
		y=R[i]%M;
		if(y<x){
			if(R[i]-L[i]>=M)
				S.insert({0,M-1});
			else{
				S.insert({0,y});
				S.insert({x,M-1});
			}
		}
		else
			S.insert({x,y});
	}

	for(pll p:S){
		P[p.first]++;
		P[p.second+1]--;
	}

	for(int i=1;i<M;i++)
		P[i]+=P[i-1];

	for(ll y=0;y<B;y++)
		for(ll k=0;k<G;k++)
			if(is_in(B*k+y))
				ans++;
	
	cout<<ans;

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