QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#583973 | #9381. 502 Bad Gateway | Rikkual | TL | 0ms | 0kb | C++14 | 3.2kb | 2024-09-23 00:55:51 | 2024-09-23 00:55:52 |
Judging History
answer
#include <bits/stdc++.h>
// #pragma GCC optimize(2)
#ifndef ONLINE_JUDGE
#define Debug
#endif
#define multiple_test 1
#define int int64_t
const int MAXN = 1e6, N = MAXN + 10;
const int MOD = 1e9 + 7;
const int INF = 0x3f3f3f3f3f3f3f3fll;
using namespace std;
struct Frac {
int num, den;
Frac(int _num = 0, int _den = 1): num(_num), den(_den) {
if(den < 0) {
num = -num; den = -den;
}
}
void gcd() {
int g = __gcd(num, den);
num /= g; den /= g;
}
operator double() const {
return 1.0 * 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 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 ostream &operator<<(ostream &os, Frac x) {
x.gcd();
os << x.num << " " << x.den;
}
};
inline void solve() {
int n; cin >> n;
auto calc = [&](int x) {
Frac res(x * x - x + 2 * n, 2 * x);
return res;
};
double x = sqrt(2 * n);
Frac res = min(calc(int(x)), calc(ceil(x)));
cout << res << "\n";
}
signed main() {
#ifndef ONLINE_JUDGE
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
clock_t start_time = clock();
#else
ios::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
#endif
int t = 1; if(multiple_test) cin >> t;
while(t--) {
solve();
}
#ifndef ONLINE_JUDGE
cout << "Used " << clock() - start_time << " ms" << endl;
#endif
return 0;
}
详细
Test #1:
score: 0
Time Limit Exceeded
input:
3 1 2 3
output:
1 11 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0...