This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define lli long long int
#define debug(a) cout << #a << " = " << a << endl
#define debugsl(a) cout << #a << " = " << a << ", "
#define rep(i,a,b) for(int i = (a); i <= (b); i++)
#define repa(i,a,b) for(int i = (a); i >= (b); i--)
#define LIM (1ll << 62)
lli a,b,n,cont,x,y,mult,ini,res;
vector<pair<lli,lli> > orden;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> a >> b;
mult = LIM/a;
if (mult >= b) mult = a*b;
else mult = LIM;
rep(i,1,n) {
cin >> x >> y;
x %= mult;
y %= mult;
if (x > y) {
orden.push_back({0,1});
orden.push_back({mult-1,2});
}
orden.push_back({x,1});
orden.push_back({y,2});
}
sort(orden.begin(), orden.end());
ini = -1;
cont = 0;
res = 0;
for (auto act:orden) {
if (act.second == 1) {
cont++;
if (ini == -1) ini = act.first;
}
else cont--;
if (cont == 0) {
res += (act.first - ini) + 1;
ini = -1;
}
}
cout << res;
}
# | 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... |