Submission #224438

#TimeUsernameProblemLanguageResultExecution timeMemory
224438Bruteforceman이상한 기계 (APIO19_strange_device)C++11
15 / 100
2190 ms53628 KiB
#include <bits/stdc++.h>
using namespace std;
const long long INF = 3e18;

int main() {
  int n;
  long long A, B;
  cin >> n >> A >> B;
  long long per = A / __gcd(A, B + 1);
  if((INF / B) < per) per = INF;
  else per = per * B;
  vector <pair <long long, long long>> v;
  auto addRange = [&] (long long p, long long q) {
    v.emplace_back(q, p);
  };
  for(int i = 0; i < n; i++) {
    long long p, q;
    cin >> p >> q;
    if((q - p + 1) >= per) {
      cout << per << endl;
      exit(0);
    } 
    p %= per; q %= per;
    if(p <= q) {
      addRange(p, q);
    } else {
      addRange(p, per - 1);
      addRange(0, q);
    }
  }
  sort(v.begin(), v.end());
  long long ans = 0;
  long long last = -1;
  for(auto i : v) {
    long long l = i.second;
    long long r = i.first;
    ans += r - max(last + 1, l) + 1;
    last = r;
  }
  cout << ans << endl;
  return 0;
}
#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...