답안 #678141

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
678141 2023-01-05T08:49:07 Z faribourz 이상한 기계 (APIO19_strange_device) C++14
30 / 100
687 ms 63060 KB
// Only GOD
// believe in yourself
// Nemidam Del Be In Darde Donya!
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;

#define F first
#define S second
#define pb push_back
#define all(x) x.begin(), x.end()
#define bit(x, y) ((x >> y)&1)
#define sz(x) (int)x.size()
#define kill(x) return cout << x << '\n', void()
#define KILL(x) return cout << x << '\n', 0
#define int ll

const int INF = 1e18;
map<int, int> M;
int32_t main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int A, B, n;
	cin >> n >> A >> B;
	int g = __gcd(A, B+1);
	int AB;
	A /= g;
	if(INF / A < B+1){
		AB = INF;
	}
	else
		AB = A*B;
	int ans = 0;
	for(int i = 0; i < n; i++){
		int l, r;
		cin >> l >> r;
		if(r-l+1 >= AB)
			ans = AB;
		l %= AB, r %= AB;
		if(!r){
			M[l]++;
			M[0]++;
			M[1]--;
			M[AB]--;
			continue;
		}
		if(l <= r){
			M[l]++;
			M[r+1]--;
		}
		else{
			M[0]++;
			M[l]++;
			M[AB]--;
			M[r+1]--;
		}
	}
	if(ans)
		KILL(ans);
	int sum = 0, lst = -1;
	ans = 0;
	for(auto x : M){
		if(lst == -1){
			sum += x.S;
			lst = x.F;
			continue;
		}
		if(sum > 0){
			ans += x.F-lst;
		}
		sum += x.S;
		lst = x.F;
	}
	cout << min(ans, AB);
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 5 ms 852 KB Output is correct
3 Correct 5 ms 852 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Incorrect 0 ms 212 KB Output isn't correct
11 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 396 KB Output is correct
5 Correct 234 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 602 ms 63060 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 602 ms 63060 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 602 ms 63060 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 62 ms 6584 KB Output is correct
3 Correct 61 ms 6516 KB Output is correct
4 Correct 671 ms 62932 KB Output is correct
5 Correct 65 ms 6660 KB Output is correct
6 Correct 62 ms 6496 KB Output is correct
7 Correct 72 ms 6616 KB Output is correct
8 Correct 60 ms 6556 KB Output is correct
9 Correct 60 ms 6588 KB Output is correct
10 Correct 55 ms 6472 KB Output is correct
11 Correct 58 ms 6516 KB Output is correct
12 Correct 57 ms 6532 KB Output is correct
13 Correct 62 ms 6476 KB Output is correct
14 Correct 687 ms 63048 KB Output is correct
15 Correct 54 ms 6476 KB Output is correct
16 Correct 598 ms 62944 KB Output is correct
17 Correct 612 ms 62980 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 5 ms 852 KB Output is correct
3 Correct 5 ms 852 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Incorrect 0 ms 212 KB Output isn't correct
11 Halted 0 ms 0 KB -