제출 #332679

#제출 시각UTC-0아이디문제언어결과실행 시간메모리
3326792020-12-03 02:45:0412tqianNaan (JOI19_naan)C++17
100 / 100
3634 ms189036 KiB
#include <bits/stdc++.h>
struct Frac {
__int128_t n, d;
Frac(__int128_t _n, __int128_t _d) {
n = _n, d = _d;
__int128_t g = std::__gcd(n, d); n /= g, d /= g;
if (d < 0) n *= -1, d *= -1;
}
Frac(__int128_t _n) : Frac(_n, 1) {}
Frac() : Frac(0) {}
friend Frac abs(Frac F) { return Frac(abs(F.n), F.d); }
friend bool operator < (const Frac& l, const Frac& r) { return l.n * r.d < r.n * l.d; }
friend bool operator <= (const Frac& l, const Frac& r) { return l.n * r.d <= r.n * l.d; }
friend bool operator > (const Frac& l, const Frac& r) { return l.n * r.d > r.n * l.d; }
friend bool operator >= (const Frac& l, const Frac& r) { return l.n * r.d >= r.n * l.d; }
friend bool operator == (const Frac& l, const Frac& r) { return l.n == r.n && l.d == r.d; }
friend bool operator != (const Frac& l, const Frac& r) { return !(l == r); }
Frac operator - () const { return Frac(-n, d); }
friend Frac operator + (const Frac& l, const Frac& r) { return Frac(l.n * r.d + r.n * l.d, l.d * r.d); }
friend Frac operator - (const Frac& l, const Frac& r) { return Frac(l.n * r.d - r.n * l.d, l.d * r.d); }
friend Frac operator * (const Frac& l, const Frac& r) { return Frac(l.n * r.n, l.d * r.d); }
friend Frac operator * (const Frac& l, int r) { return l * Frac(r, 1); }
friend Frac operator * (int r, const Frac& l) { return l * r; }
friend Frac operator / (const Frac& l, const Frac& r) { return l * Frac(r.d, r.n); }
friend Frac operator / (const Frac& l, const int& r) { return l / Frac(r, 1); }
friend Frac operator / (const int& l, const Frac& r) { return Frac(l, 1) / r; }
friend Frac& operator += (Frac& l, const Frac& r) { return l = l + r; }
friend Frac& operator -= (Frac& l, const Frac& r) { return l = l - r; }
template <class T> friend Frac& operator *= (Frac& l, const T& r) { return l = l * r; }
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...