#include <bits/stdc++.h>
#define int long long
using namespace std;
// #define FOR(i, begin, end) for (__typeof(end) i = (begin); i != (end) + 1 - 2 * ((begin) > (end)); i += 1 - 2 * ((begin) > (end)))
#define _upgrade ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define FOR(i, a, b) for (int i = a; i <= b; i++)
#define FORB(i, a, b) for (int i = a; i >= b; i--)
#define REP(i, a) for (int i = 0; i < a; i++)
#define REP1(i, a) for (int i = 1; i < a; i++)
#define REPB(i, a) for (int i = a - 1; i >= 0; i--)
#define TRAV(a,x) for (auto& a: x)
#define ALL(A) A.begin(), A.end()
#define LLA(A) A.rbegin(), A.rend()
#define II <int, int>
#define Q queue
#define ff first
#define bk back()
#define ss second
#define rs resize
#define ins insert
#define fr front()
#define ts to_string
#define pb push_back
#define mp make_pair
#define lb lower_bound
#define ub upper_bound
#define PQ priority_queue
#define umap unordered_map
#define sz(x) (int)x.size()
typedef long long ll;
typedef double db;
typedef unsigned uint;
typedef unsigned long long ull;
typedef unordered_map<int, int> umapII;
// PQ going up <int, VI, greater<int> >
typedef vector<int> VI;
typedef vector<char> VC;
typedef vector<string> VS;
typedef vector<bool> VB;
typedef vector<VB> VVB;
typedef vector<VVB> VVVB;
typedef vector<umapII> VumapII;
typedef vector<ll> VLL;
typedef vector<VLL> VVLL;
typedef vector<VVLL> VVVLL;
typedef vector<VVVLL> VVVVLL;
typedef vector<db> VD;
typedef set<int> SI;
typedef set<string> SS;
typedef map<int, int> MII;
typedef map<string, int> MSI;
typedef pair<int, int> PII;
typedef pair<ll, ll> PLL;
typedef vector<PII> VPI;
typedef vector<VPI> VVPI;
typedef vector<VI> VVI;
typedef vector<VVI> VVVI;
typedef vector<VVVI> VVVVI;
typedef vector<VVVVI> VVVVVI;
// mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
void eraseDups(VI& a) {
a.erase(unique(a.begin(), a.end()), a.end());
}
int strToInt(string&a) {
stringstream x(a);
int b;
x >> b;
return b;
}
void readI(int& a) {
cin >> a;
}
void readI(int& a, int&b) {
cin >> a >> b;
}
void readI(int& a, int&b, int&c) {
cin >> a >> b >> c;
}
VI readVI(int n) {
VI a(n);
REP(i, n) cin >> a[i];
return a;
}
VVI readVVI(int n, int m) {
VVI a(n, VI(m));
REP(i, n) a[i] = readVI(m);
return a;
}
VLL readVLL(ll n) {
VLL a(n);
REP(i, n) cin >> a[i];
return a;
}
VVLL readVVLL(ll n, ll m) {
VVLL a(n, VLL(m));
REP(i, n) a[i] = readVLL(m);
return a;
}
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
void print(VI& a) {
for (auto el : a) {
cout << el << ' ';
}
cout << '\n';
}
void print(VI& a, int n) {
int cnt = 0;
for (auto el : a) {
if (cnt++ == n) break;
cout << el << ' ';
}
cout << '\n';
}
const int MOD = 1e9 + 7;
const int MOD1 = 998244353;//119*2^23 +1;
const int INF = 2e9;
const ll INFF = INT64_MAX;
const db EPS = 1e-9;
const db PI = acos(-1.0); //M_PI;
const int moveX[] = {-1, 0, 1, 0};
const int moveY[] = {0, 1, 0, -1};
/*
| ⣠⣶⡾⠏⠉⠙⠳⢦⡀⠀ ⠀⢠⠞⠉⠙⠲⡀
| ⣴⠿⠏⠀⠀⠀⠀⠀⠀⢳⡀⠀ ⡏⠀⠀ ⠀⠀ ⢷
|⠀⠀⢠⣟⣋⡀⢀⣀⣀⡀⠀⣀⡀⣧⠀ ⢸⠀⠀⠀⠀ ⡇ ⠀
| ⠀⢸⣯⡭⠁⠸⣛⣟⠆⡴⣻⡲⣿ ⣸⠀⠀OK. ⡇
|⠀⠀⣟⣿⡭⠀⠀⠀⠀⠀⢱⠀⠀⣿ ⢹⠀⠀⠀⠀⠀ ⡇
|⠀⠀⠙⢿⣯⠄⠀⠀⠀⢀⡀⠀⠀⡿⠀ ⡇⠀⠀ ⠀ ⡼
|⠀⠀⠀⠀⠹⣶⠆⠀⠀⠀⠀⠀⡴⠃ ⠀ ⠘⠤⣄⣠⠞⠀ ⠀
|⠀⠀⠀⠀⢸⣷⡦⢤⡤⢤⣞⣁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀
|⠀⢀⣤⣴⣿⣏⠁⠀⠀⠸⣏⢯⣷⣖⣦⡀⠀⠀⠀⠀⠀⠀
|⢀⣾⣽⣿⣿⣿⣿⠛⢲⣶⣾⢉⡷⣿⣿⠵⣿⠀⠀⠀⠀⠀
|⣼⣿⠍⠉⣿⡭⠉⠙⢺⣇⣼⡏⠀ ⠀⣄⢸⣿
|⣿⣿⣧⣀⣿.........⣀⣰⣏⣘⣆⣀
| _ _ _
| (_) | | | |
_ __ _ __ ___ __ _ _ __ __ _ _ __ ___ _ __ ___ _ ___ ___| |_| |_
| '_ \| '__/ _ \ / _` | '__/ _` | '_ ` _ \| '_ ` _ \| / __/ __| __| __|
| |_) | | | (_) | (_| | | | (_| | | | | | | | | | | | \__ \__ \ |_| |_
| .__/|_| \___/ \__, |_| \__,_|_| |_| |_|_| |_| |_|_|___/___/\__|\__|
| | __/ |
|_| |___/
_ _ _ _ __ __ _ _
| | | | ___| | | __\ \ / /__ _ __| | __| |
| |_| |/ _ \ | |/ _ \ \ /\ / / _ \| '__| |/ _` |
| _ | __/ | | (_) \ V V / (_) | | | | (_| |
|_| |_|\___|_|_|\___/ \_/\_/ \___/|_| |_|\__,_|
____ __ _______ _______ __________
| \ | | | _____| / _____) |____ ____|
| |\ \ | | | |__ ( (_____ | |
| | \ \| | | __| \_____ \ | |
| | \ | | |_____ _____) ) | |
|__| \____| |_______| (_______/ |__|
*/
int n, A, B, AB;
void go () {
cin >> n >> A >> B;
// x, y = (t + (t / B)) % A, t % B
bool gege = 0;
int Gcd = gcd(A, B+1);
if (Gcd == 1LL) {
// k * (B1) % A == 0 -> k = A;
// AB = A * B;
if (INFF / A / B > 0) {
AB = A * B;
gege = 1;
} else {
AB = INFF;
}
} else {
// k * (B1) % A == 0 -> k = A;
// Gcd k = A / Gcd;
int K = A / Gcd;
if (INFF / B / K > 0)
AB = B * K, gege = 1;
else
AB = INFF;
}
VPI times;
REP(i, n) {
int l, r;
cin >> l >> r;
// cout << l << ' ' << r << ": ";
if (gege) {
int minus = l - (l % AB);
l -= minus;
r -= minus;
if (r - l + 1 >= AB) {
cout << AB << '\n';
return;
}
}
if (r < AB) {
// cout << l << ' ' << r << '\n';
times.pb({l, r});
} else {
// cout << l << ' ' << AB-1 << ',' << 0 << ' ' << r%AB << '\n';
times.pb({l, AB-1});
times.pb({0, r%AB});
}
}
int cur = 0, ans = 0;
sort(ALL(times));
for (int i = 0; i < (ll)(times.size()) && cur < AB; i++) {
int l = times[i].ff, r = times[i].ss;
// cout << l << ' ' << r << '\n';
l = max(l, cur);
if (l > r) continue;
ans += r - l + 1;
cur = max(cur, r+1);
}
cout << ans << '\n';
}
signed main () {
#ifdef ONLINE_JUDGE
#else
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
#endif
_upgrade
int T = 1;
while(T--) go();
return 0;
}
/* stuff you should look for
* int overflow, array bounds
* special cases (n=1?)
*/
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
7 ms |
972 KB |
Output is correct |
3 |
Correct |
7 ms |
972 KB |
Output is correct |
4 |
Correct |
1 ms |
208 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
208 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
1 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
14 |
Correct |
1 ms |
204 KB |
Output is correct |
15 |
Correct |
1 ms |
204 KB |
Output is correct |
16 |
Correct |
5 ms |
944 KB |
Output is correct |
17 |
Correct |
60 ms |
3048 KB |
Output is correct |
18 |
Correct |
1 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
208 KB |
Output is correct |
3 |
Correct |
1 ms |
316 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
332 KB |
Output is correct |
3 |
Correct |
1 ms |
332 KB |
Output is correct |
4 |
Correct |
1 ms |
332 KB |
Output is correct |
5 |
Correct |
340 ms |
17152 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
489 ms |
17396 KB |
Output is correct |
3 |
Correct |
473 ms |
17920 KB |
Output is correct |
4 |
Correct |
440 ms |
19092 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
489 ms |
17396 KB |
Output is correct |
3 |
Correct |
473 ms |
17920 KB |
Output is correct |
4 |
Correct |
440 ms |
19092 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
485 ms |
19852 KB |
Output is correct |
7 |
Correct |
468 ms |
18560 KB |
Output is correct |
8 |
Correct |
448 ms |
19120 KB |
Output is correct |
9 |
Correct |
515 ms |
18876 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
489 ms |
17396 KB |
Output is correct |
3 |
Correct |
473 ms |
17920 KB |
Output is correct |
4 |
Correct |
440 ms |
19092 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
44 ms |
5608 KB |
Output is correct |
7 |
Correct |
50 ms |
5604 KB |
Output is correct |
8 |
Correct |
46 ms |
5692 KB |
Output is correct |
9 |
Correct |
49 ms |
5640 KB |
Output is correct |
10 |
Correct |
44 ms |
5632 KB |
Output is correct |
11 |
Correct |
50 ms |
5620 KB |
Output is correct |
12 |
Correct |
44 ms |
5696 KB |
Output is correct |
13 |
Correct |
48 ms |
5632 KB |
Output is correct |
14 |
Correct |
47 ms |
5592 KB |
Output is correct |
15 |
Correct |
48 ms |
5692 KB |
Output is correct |
16 |
Correct |
54 ms |
5604 KB |
Output is correct |
17 |
Correct |
46 ms |
5612 KB |
Output is correct |
18 |
Correct |
479 ms |
18920 KB |
Output is correct |
19 |
Correct |
436 ms |
18848 KB |
Output is correct |
20 |
Correct |
553 ms |
18912 KB |
Output is correct |
21 |
Correct |
60 ms |
5688 KB |
Output is correct |
22 |
Correct |
44 ms |
5688 KB |
Output is correct |
23 |
Correct |
144 ms |
18476 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
60 ms |
3428 KB |
Output is correct |
3 |
Correct |
60 ms |
3600 KB |
Output is correct |
4 |
Correct |
516 ms |
17920 KB |
Output is correct |
5 |
Correct |
58 ms |
3768 KB |
Output is correct |
6 |
Correct |
47 ms |
3700 KB |
Output is correct |
7 |
Correct |
47 ms |
3812 KB |
Output is correct |
8 |
Correct |
72 ms |
3788 KB |
Output is correct |
9 |
Correct |
46 ms |
3768 KB |
Output is correct |
10 |
Correct |
52 ms |
3768 KB |
Output is correct |
11 |
Correct |
51 ms |
3720 KB |
Output is correct |
12 |
Correct |
43 ms |
3728 KB |
Output is correct |
13 |
Correct |
47 ms |
3752 KB |
Output is correct |
14 |
Correct |
489 ms |
17676 KB |
Output is correct |
15 |
Correct |
48 ms |
3764 KB |
Output is correct |
16 |
Correct |
471 ms |
19076 KB |
Output is correct |
17 |
Correct |
472 ms |
19740 KB |
Output is correct |
18 |
Correct |
1 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
7 ms |
972 KB |
Output is correct |
3 |
Correct |
7 ms |
972 KB |
Output is correct |
4 |
Correct |
1 ms |
208 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
208 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
1 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
14 |
Correct |
1 ms |
204 KB |
Output is correct |
15 |
Correct |
1 ms |
204 KB |
Output is correct |
16 |
Correct |
5 ms |
944 KB |
Output is correct |
17 |
Correct |
60 ms |
3048 KB |
Output is correct |
18 |
Correct |
1 ms |
204 KB |
Output is correct |
19 |
Correct |
1 ms |
204 KB |
Output is correct |
20 |
Correct |
1 ms |
208 KB |
Output is correct |
21 |
Correct |
1 ms |
316 KB |
Output is correct |
22 |
Correct |
1 ms |
204 KB |
Output is correct |
23 |
Correct |
1 ms |
204 KB |
Output is correct |
24 |
Correct |
1 ms |
204 KB |
Output is correct |
25 |
Correct |
1 ms |
332 KB |
Output is correct |
26 |
Correct |
1 ms |
332 KB |
Output is correct |
27 |
Correct |
1 ms |
332 KB |
Output is correct |
28 |
Correct |
340 ms |
17152 KB |
Output is correct |
29 |
Correct |
1 ms |
204 KB |
Output is correct |
30 |
Correct |
489 ms |
17396 KB |
Output is correct |
31 |
Correct |
473 ms |
17920 KB |
Output is correct |
32 |
Correct |
440 ms |
19092 KB |
Output is correct |
33 |
Correct |
1 ms |
204 KB |
Output is correct |
34 |
Correct |
485 ms |
19852 KB |
Output is correct |
35 |
Correct |
468 ms |
18560 KB |
Output is correct |
36 |
Correct |
448 ms |
19120 KB |
Output is correct |
37 |
Correct |
515 ms |
18876 KB |
Output is correct |
38 |
Correct |
1 ms |
204 KB |
Output is correct |
39 |
Correct |
44 ms |
5608 KB |
Output is correct |
40 |
Correct |
50 ms |
5604 KB |
Output is correct |
41 |
Correct |
46 ms |
5692 KB |
Output is correct |
42 |
Correct |
49 ms |
5640 KB |
Output is correct |
43 |
Correct |
44 ms |
5632 KB |
Output is correct |
44 |
Correct |
50 ms |
5620 KB |
Output is correct |
45 |
Correct |
44 ms |
5696 KB |
Output is correct |
46 |
Correct |
48 ms |
5632 KB |
Output is correct |
47 |
Correct |
47 ms |
5592 KB |
Output is correct |
48 |
Correct |
48 ms |
5692 KB |
Output is correct |
49 |
Correct |
54 ms |
5604 KB |
Output is correct |
50 |
Correct |
46 ms |
5612 KB |
Output is correct |
51 |
Correct |
479 ms |
18920 KB |
Output is correct |
52 |
Correct |
436 ms |
18848 KB |
Output is correct |
53 |
Correct |
553 ms |
18912 KB |
Output is correct |
54 |
Correct |
60 ms |
5688 KB |
Output is correct |
55 |
Correct |
44 ms |
5688 KB |
Output is correct |
56 |
Correct |
144 ms |
18476 KB |
Output is correct |
57 |
Correct |
1 ms |
204 KB |
Output is correct |
58 |
Correct |
60 ms |
3428 KB |
Output is correct |
59 |
Correct |
60 ms |
3600 KB |
Output is correct |
60 |
Correct |
516 ms |
17920 KB |
Output is correct |
61 |
Correct |
58 ms |
3768 KB |
Output is correct |
62 |
Correct |
47 ms |
3700 KB |
Output is correct |
63 |
Correct |
47 ms |
3812 KB |
Output is correct |
64 |
Correct |
72 ms |
3788 KB |
Output is correct |
65 |
Correct |
46 ms |
3768 KB |
Output is correct |
66 |
Correct |
52 ms |
3768 KB |
Output is correct |
67 |
Correct |
51 ms |
3720 KB |
Output is correct |
68 |
Correct |
43 ms |
3728 KB |
Output is correct |
69 |
Correct |
47 ms |
3752 KB |
Output is correct |
70 |
Correct |
489 ms |
17676 KB |
Output is correct |
71 |
Correct |
48 ms |
3764 KB |
Output is correct |
72 |
Correct |
471 ms |
19076 KB |
Output is correct |
73 |
Correct |
472 ms |
19740 KB |
Output is correct |
74 |
Correct |
1 ms |
204 KB |
Output is correct |
75 |
Correct |
1 ms |
312 KB |
Output is correct |
76 |
Correct |
1 ms |
320 KB |
Output is correct |
77 |
Correct |
1 ms |
316 KB |
Output is correct |
78 |
Correct |
1 ms |
204 KB |
Output is correct |
79 |
Correct |
5 ms |
976 KB |
Output is correct |
80 |
Correct |
536 ms |
19816 KB |
Output is correct |
81 |
Correct |
544 ms |
19016 KB |
Output is correct |
82 |
Correct |
503 ms |
19024 KB |
Output is correct |
83 |
Correct |
480 ms |
19776 KB |
Output is correct |
84 |
Correct |
492 ms |
19744 KB |
Output is correct |
85 |
Correct |
500 ms |
18672 KB |
Output is correct |
86 |
Correct |
173 ms |
18536 KB |
Output is correct |
87 |
Correct |
1 ms |
204 KB |
Output is correct |