Submission #683680

# Submission time Handle Problem Language Result Execution time Memory
683680 2023-01-19T05:25:35 Z Nursik Strange Device (APIO19_strange_device) C++14
Compilation error
0 ms 0 KB
#include <stdio.h>
 
#include <algorithm>
#include <bitset>
#include <cassert>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <vector>

using namespace std;
 
#define ll long long
#define pb push_back
#define mp make_pair
#define f first
#define s second
#define ld long double
#define bug cout << "bug\n";

const ll maxn = 1e6 + 5, maxm = 2e2 + 1;
const ll mod = 1e9 + 7, inf = 1e9, block = 550, hb = 126067, base = 1000050017,
         biginf = 5e18;
const ld eps = 1e-15;
using namespace std;

int n;
ll a, b, p;
ll l[maxn], r[maxn];
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    cin >> n >> a >> b;
    a = a / gcd(a, b + 1);
    if (a > 1e18 / b){
        p = 1e18;
    }
    else{
        p = a * b;
    }
    vector<pair<ll, ll>> v;
    for (int i = 1; i <= n; ++i){
        cin >> l[i] >> r[i];
        ll x = l[i] % p;
        ll y = r[i] % p;
        if (r[i] - l[i] + 1 >= p){
            cout << p;
            exit(0);
        }
        if (x <= y){
            v.pb(mp(x, y));
        }
        else{
            v.pb(mp(x, p - 1));
            v.pb(mp(0, y));
        }
    }
    sort(v.begin(), v.end());
    ll ans = 0, nxt = -1;
    for (auto it : v){
        ll lf = it.f, rg = it.s;
        if (nxt < lf){
            ans += rg - lf + 1;
            nxt = rg;
        }
        else if (nxt <= rg){
            ans += rg - nxt;
            nxt = rg;
        }
    }
    cout << ans;
}

Compilation message

strange_device.cpp: In function 'int main()':
strange_device.cpp:51:13: error: 'gcd' was not declared in this scope
   51 |     a = a / gcd(a, b + 1);
      |             ^~~