This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
//la o perioada de B in dreapta, stanga creste cu B+1
#include<iostream>
#include<algorithm>
#define INF 1000000000000000005LL
using namespace std;
typedef struct event
{
long long poz;
int tip;
} EVENT;
bool cmp(EVENT a, EVENT b)
{
if(a.poz!=b.poz)
return a.poz<b.poz;
else
return a.tip>b.tip;
}
EVENT Ev[4000005];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
long long a,b;
cin>>n>>a>>b;
long long d=__gcd(a,b+1);
long long nr=a/d; //de cate ori trb sa adun B+1 pt a obtine un multiplu de A, in stanga
long long per=0;
if(nr<=INF/b)
per=nr*b;
else
per=INF;
int nrev=0;
for(int i=1; i<=n; i++)
{
long long x,y;
cin>>x>>y;
if(y-x>=per)
y=x+per-1;
x%=per;
y%=per;
if(x<=y)
{
Ev[++nrev]={x,1};
Ev[++nrev]={y,-1};
}
else
{
Ev[++nrev]={0,1};
Ev[++nrev]={y,-1};
Ev[++nrev]={x,1};
Ev[++nrev]={per-1,-1};
}
}
sort(Ev+1,Ev+nrev+1,cmp);
int nractiv=0;
long long rez=0;
for(int i=1; i<=nrev; i++)
{
long long poz=Ev[i].poz;
while(i<=nrev && Ev[i].poz==poz && Ev[i].tip==1)
{
nractiv++;
i++;
}
if(nractiv>0)
rez++;
while(i<=nrev && Ev[i].poz==poz && Ev[i].tip==-1)
{
nractiv--;
i++;
}
i--;
if(nractiv>0)
{
if(i<nrev)
rez=rez+(Ev[i+1].poz-Ev[i].poz-1);
else
rez=rez+(per-Ev[i].poz-1);
}
}
cout<<rez<<"\n";
return 0;
}
# | 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... |