Submission #32030170


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define int long long
// #define int __int128

template <typename T>
inline void read(T &a) {
	char c;for (c = getchar(); (c < '0' || c > '9') && c != '-'; c = getchar());bool f = c == '-';T x = f ? 0 : (c ^ '0');for (c = getchar(); c >= '0' && c <= '9'; c = getchar()) {x = x * 10 + (c ^ '0');}a = f ? -x : x;
}
template <typename T, typename ...Argv>
inline void read(T &a, Argv &...argv) {
	read(a), read(argv...);
}

int gcd(int a, int b) {
	return b ? gcd(b, a % b) : a;
}
int lcm(int a, int b) {
	return a / gcd(a, b) * b;
}

inline int Ari(int l, int r, int d) {
	return (l + r) * ((r - l) / d + 1) / 2;
}

int l = 1, r, a, b, ab;
int ans;
signed main() {
	read(r, a, b);
	// if (a > b) swap(a, b);
	// if (b % a == 0) {
	// 	int La = ceil((long double)l / a);
	// 	int Ra = (long double)r / a;
	// 	ans = Ari(1, r, 1);
	// 	if (La <= Ra) ans -= Ari(La * a, Ra * a, a);
	// } else {
	// 	ab = a * b;
	// 	int La = ceil((long double)l / a);
	// 	int Ra = (long double)r / a;
	// 	int Lb = ceil((long double)l / b);
	// 	int Rb = (long double)r / b;
	// 	int Lab = ceil((long double)l / ab);
	// 	int Rab = (long double)r / ab;
	// 	ans = Ari(1, r, 1);
	// 	// if (La <= Ra) ans -= Ra - La + 1;
	// 	// if (Lb <= Rb) ans -= Rb - Lb + 1;
	// 	// if (Lab <= Rab) ans += Rab - Lab + 1;
	// 	if (La <= Ra) ans -= Ari(La * a, Ra * a, a);
	// 	if (Lb <= Rb) ans -= Ari(Lb * b, Rb * b, b);
	// 	if (Lab <= Rab) ans += Ari(Lab * ab, Rab * ab, ab);
	// }
	ab = lcm(a, b);
	int La = ceil((long double)l / a);
	int Ra = (long double)r / a;
	int Lb = ceil((long double)l / b);
	int Rb = (long double)r / b;
	int Lab = ceil((long double)l / ab);
	int Rab = (long double)r / ab;
	ans = Ari(1, r, 1);
	// if (La <= Ra) ans -= Ra - La + 1;
	// if (Lb <= Rb) ans -= Rb - Lb + 1;
	// if (Lab <= Rab) ans += Rab - Lab + 1;
	if (La <= Ra) ans -= Ari(La * a, Ra * a, a);
	if (Lb <= Rb) ans -= Ari(Lb * b, Rb * b, b);
	if (Lab <= Rab) ans += Ari(Lab * ab, Rab * ab, ab);
	printf("%lld\n", ans);
}

Submission Info

Submission Time
Task D - FizzBuzz Sum Hard
User rsdbk_husky_undo
Language C++ (GCC 9.2.1)
Score 400
Code Size 2092 Byte
Status AC
Exec Time 10 ms
Memory 3592 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 2
AC × 20
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt
All 00_sample_01.txt, 00_sample_02.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 02_max_01.txt, 02_max_02.txt, 02_max_03.txt, 02_max_04.txt, 02_max_05.txt, 02_max_06.txt, 02_max_07.txt, 02_max_08.txt, 02_max_09.txt, 02_max_10.txt, 02_max_11.txt, 02_max_12.txt, 02_max_13.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 10 ms 3412 KiB
00_sample_02.txt AC 2 ms 3476 KiB
01_random_01.txt AC 2 ms 3464 KiB
01_random_02.txt AC 2 ms 3472 KiB
01_random_03.txt AC 2 ms 3524 KiB
01_random_04.txt AC 2 ms 3496 KiB
01_random_05.txt AC 2 ms 3524 KiB
02_max_01.txt AC 2 ms 3496 KiB
02_max_02.txt AC 2 ms 3492 KiB
02_max_03.txt AC 2 ms 3464 KiB
02_max_04.txt AC 2 ms 3420 KiB
02_max_05.txt AC 2 ms 3464 KiB
02_max_06.txt AC 3 ms 3528 KiB
02_max_07.txt AC 2 ms 3500 KiB
02_max_08.txt AC 2 ms 3524 KiB
02_max_09.txt AC 2 ms 3592 KiB
02_max_10.txt AC 2 ms 3492 KiB
02_max_11.txt AC 2 ms 3488 KiB
02_max_12.txt AC 2 ms 3464 KiB
02_max_13.txt AC 2 ms 3496 KiB