| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1367158 | Nxmkxing | Strange Device (APIO19_strange_device) | C++20 | 372 ms | 47540 KiB |
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pll = pair<long long, long long>;
const int N = 1e6 + 10;
ll n, a, b, l[N], r[N];
vector<ll> vec[N];
ll gcd(ll a, ll b) {
if (b == 0) return a;
return gcd(b, a % b);
}
vector<pll> sweep;
void add_interval(ll a, ll b) {
sweep.push_back({a, 1});
sweep.push_back({b + 1, -1});
}
int main() {
cin.tie(nullptr)->ios_base::sync_with_stdio(false);
cin >> n >> a >> b;
ll m = a * b / gcd(b + 1, a);
for (int i = 1; i <= n; i++) {
cin >> l[i] >> r[i];
ll sz = r[i] - l[i] + 1;
if (sz >= m) {
cout << m;
return 0;
}
l[i] %= m, r[i] %= m;
if (l[i] <= r[i]) {
add_interval(l[i], r[i]);
}
else {
add_interval(l[i], m - 1);
add_interval(0, r[i]);
}
}
sort(sweep.begin(), sweep.end());
ll ans = 0;
ll start = -1;
ll total = 0;
for (auto [i, val] : sweep) {
if (total == 0) start = i;
total += val;
if (total == 0) ans += i - start;
}
cout << ans;
}
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
