Submission #1173894

#TimeUsernameProblemLanguageResultExecution timeMemory
1173894stdfloatStrange Device (APIO19_strange_device)C++20
100 / 100
614 ms63152 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

int main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);

	int n;
	ll A, B;
	cin >> n >> A >> B;

	ll L = min(LLONG_MAX / B, A / __gcd(A, B + 1)) * B;

	map<ll, int> m;
	m[0] = 0; m[L] = 0;
	while (n--) {
		ll l, r;
		cin >> l >> r;

		if (L <= r - l + 1) return cout << L, 0;

		m[l % L]++;
		m[r % L + 1]--;

		if (r % L < l % L) {
			m[0]++; m[L]--;
		}
	}

	ll x = 0, lst = 0, ans = 0;
	for (auto [i, p] : m) {
		if (x) ans += i - lst;

		x += p;

		lst = i;
	}

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