Submission #232442

#TimeUsernameProblemLanguageResultExecution timeMemory
232442limabeansStrange Device (APIO19_strange_device)C++17
5 / 100
462 ms524292 KiB
#include <bits/stdc++.h>
using namespace std;

template<typename T>
void out(T x) { cout << x << endl; exit(0); }
#define watch(x) cout << (#x) << " is " << (x) << endl




typedef long long ll;
const ll mod = 1e9+7;
const int maxn = 1e6 + 5;



ll n, a, b;


ll getx(ll t) {
    return (t+t/b)%a;
}

ll gety(ll t) {
    return t%b;
}


vector<pair<ll,ll>> v;

int main() {
    ios_base::sync_with_stdio(false); cin.tie(0);  cout.tie(0);

    cin>>n>>a>>b;
    v.resize(n);
    for (int i=0; i<n; i++) {
	cin>>v[i].first>>v[i].second;

	v[i].first %= (a*b);
	v[i].second %= (a*b);
    }

    vector<ll> hit(a*b*2 + 10, 0);
    
    for (int i=0; i<n; i++) {
	ll l = v[i].first;
	ll r = v[i].second;

	if (r<l) r+= (a*b);
	hit[l]++;
	hit[r+1]--;
    }

    for (int i=1; i<(int)hit.size(); i++) {
	hit[i]+=hit[i-1];
    }

    vector<ll> res(a*b, 0);
    for (int i=0; i<(int)hit.size(); i++) {
	if (hit[i]>0) {
	    res[i%(a*b)]=1;
	}
    }

    ll ans = accumulate(res.begin(), res.end(), 0);
    out(ans);


    // for (int t=1; t<=100; t++) {
    // 	ll x = getx(t);
    // 	ll y = gety(t);
    // 	cout<<t<<": "<<x<<" "<<y<<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...