QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#587865 | #9381. 502 Bad Gateway | xueman | WA | 163ms | 3724kb | C++17 | 2.8kb | 2024-09-24 22:07:56 | 2024-09-24 22:07:57 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define ll long long
const int N = 1000 + 10;
const int maxn = 1e5 + 10;
const int inf = 0x3f3f3f3f;
template <class T>
struct Frac
{
T num;
T den;
Frac(T num_, T den_) : num(num_), den(den_)
{
if (den < 0)
{
den = -den;
num = -num;
}
}
Frac() : Frac(0, 1) {}
Frac(T num_) : Frac(num_, 1) {}
explicit operator double() const
{
return 1. * num / den;
}
Frac &operator+=(const Frac &rhs)
{
num = num * rhs.den + rhs.num * den;
den *= rhs.den;
return *this;
}
Frac &operator-=(const Frac &rhs)
{
num = num * rhs.den - rhs.num * den;
den *= rhs.den;
return *this;
}
Frac &operator*=(const Frac &rhs)
{
num *= rhs.num;
den *= rhs.den;
return *this;
}
Frac &operator/=(const Frac &rhs)
{
num *= rhs.den;
den *= rhs.num;
if (den < 0)
{
num = -num;
den = -den;
}
return *this;
}
friend Frac operator+(Frac lhs, const Frac &rhs) { return lhs += rhs; }
friend Frac operator-(Frac lhs, const Frac &rhs) { return lhs -= rhs; }
friend Frac operator*(Frac lhs, const Frac &rhs) { return lhs *= rhs; }
friend Frac operator/(Frac lhs, const Frac &rhs) { return lhs /= rhs; }
friend Frac operator-(const Frac &a) { return Frac(-a.num, a.den); }
friend bool operator==(const Frac &lhs, const Frac &rhs) { return lhs.num * rhs.den == rhs.num * lhs.den; }
friend bool operator!=(const Frac &lhs, const Frac &rhs) { return lhs.num * rhs.den != rhs.num * lhs.den; }
friend bool operator<(const Frac &lhs, const Frac &rhs) { return lhs.num * rhs.den < rhs.num * lhs.den; }
friend bool operator>(const Frac &lhs, const Frac &rhs) { return (__int128_t)(lhs.num) * rhs.den > (__int128_t)(rhs.num) * lhs.den; }
friend bool operator<=(const Frac &lhs, const Frac &rhs) { return lhs.num * rhs.den <= rhs.num * lhs.den; }
friend bool operator>=(const Frac &lhs, const Frac &rhs) { return lhs.num * rhs.den >= rhs.num * lhs.den; }
friend std::ostream &operator<<(std::ostream &os, Frac x)
{
T g = std::gcd(x.num, x.den);
return os << x.num / g << " " << x.den / g;
}
};
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int T;
cin >> T;
while (T--)
{
int t;
cin >> t;
ll x = floor(sqrt(2 * t)), y = ceil(sqrt(2 * t));
Frac<ll> x1(x - 1, 2), y1(t, x), z1;
z1 = x1 + y1;
Frac<ll> x2(y - 1, 2), y2(t, y), z2;
z2 = x2 + y2;
if (z1 > z2)
cout << z1 << endl;
else
cout << z2 << endl;
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3724kb
input:
3 1 2 3
output:
1 1 3 2 2 1
result:
ok 3 lines
Test #2:
score: -100
Wrong Answer
time: 163ms
memory: 3716kb
input:
1000000 1 1000000000 1 1 1000000000 1 1000000000 1 1 1 1000000000 1 1 1000000000 1 1000000000 1000000000 1 1000000000 1 1 1000000000 1 1000000000 1000000000 1 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1 1 1000000000 1 1000000000 1000000000 1000000000 1000000000 1 1 1 10000000...
output:
1 1 2000006281 44722 1 1 1 1 2000006281 44722 1 1 2000006281 44722 1 1 1 1 1 1 2000006281 44722 1 1 1 1 2000006281 44722 1 1 2000006281 44722 2000006281 44722 1 1 2000006281 44722 1 1 1 1 2000006281 44722 1 1 2000006281 44722 2000006281 44722 1 1 2000006281 44722 2000006281 44722 2000006281 44722 20...
result:
wrong answer 2nd lines differ - expected: '1999961560 44721', found: '2000006281 44722'