Submission #726833

#TimeUsernameProblemLanguageResultExecution timeMemory
726833penguin133Strange Device (APIO19_strange_device)C++17
100 / 100
557 ms53260 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define pi pair<int, int>
#define pii pair<int, pi>
#define fi first
#define se second
#ifdef _WIN32
#define getchar_unlocked _getchar_nolock
#endif
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

void solve(){
	int n, a, b;
	cin >> n >> a >> b;
	int tmp = __gcd(a, b+1);
	__int128 x = a;
	x *= b;
	x /= tmp;
	vector <pi> v;
	int ans = 0;
	for(int i=1;i<=n;i++){
		int l, r; cin >> l >> r;
		if(l == r){
			v.push_back({l%x, l%x});
			continue;
		}
		__int128 l1 = l, r1 = r;
		if(r1 >= l1 + x){
			cout << (long long)x << '\n';
			return;
		}
		l %= x;
		r %= x;
		if(l > r)v.push_back({l, x-1}), v.push_back({0, r});
		else v.push_back({l, r});
	}
	sort(v.begin(), v.end());
	int prv = -1, st = -1;
	for(auto [i, j] : v){
		if(i > prv){
			if(prv != -1)ans += prv-st+1;
			st = i;
		}
		prv = max(prv, j);
	}
	if(prv != -1)ans += prv-st+1;
	cout << ans;
}

main(){
	ios::sync_with_stdio(0);cin.tie(0);
	int tc = 1;
	//cin >> tc;
	for(int tc1=1;tc1<=tc;tc1++){
		// cout << "Case #" << tc1 << ": ";
		solve();
	}
}

Compilation message (stderr)

strange_device.cpp:52:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   52 | main(){
      | ^~~~
#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...