結果
問題 | No.550 夏休みの思い出(1) |
ユーザー |
|
提出日時 | 2021-09-01 08:58:41 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 14 ms / 2,000 ms |
コード長 | 1,389 bytes |
コンパイル時間 | 1,743 ms |
コンパイル使用メモリ | 173,112 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-11-27 07:16:49 |
合計ジャッジ時間 | 3,640 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 55 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; #define all(A) A.begin(),A.end() using vll = vector<ll>; #define rep(i, n) for (long long i = 0; i < (long long)(n); i++) using Graph = vector<vector<ll>>; ll mod = 1e9 + 7; ll inv(ll N) { ll a = N, b = mod, c = 1, d = 0; while (b > 0) { ll t = a / b; a -= t * b; swap(a, b); c -= t * d; swap(c, d); } c %= mod; if (c < 0)c += mod; return c; } int main() { ll A, B, C; cin >> A >> B >> C; vll AN(3); if (C == 0) { AN[0] = 0; } else { for (ll i = 1; i * i * i <= abs(C); i++) { if (C % i == 0) { if (i * i + A * i + B + C / i == 0) { AN[0] = i; A += i; B += A * i; break; } if (i * i - A * i + B - C / i == 0) { AN[0] = -i; A += -i; B += (A * (-i)); break; } } } } ll d = sqrt(A * A - 4 * B); ll D; for (D = d - 2; D <= d + 2; D++) { if (D * D == A * A - 4 * B) { break; } } AN[1] = (-A - D) / 2; AN[2] = (-A + D) / 2; sort(all(AN)); cout << AN[0] << " " << AN[1] << " " << AN[2] << endl; }