結果
問題 | No.376 立方体のN等分 (2) |
ユーザー |
![]() |
提出日時 | 2016-07-13 19:18:46 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 552 ms / 5,000 ms |
コード長 | 1,095 bytes |
コンパイル時間 | 843 ms |
コンパイル使用メモリ | 86,324 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-06 23:31:49 |
合計ジャッジ時間 | 7,112 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 38 |
ソースコード
/* -*- coding: utf-8 -*- * * 376.cc: No.376 立方体のN等分 (2) - yukicoder */ #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<iostream> #include<string> #include<vector> #include<map> #include<set> #include<stack> #include<list> #include<queue> #include<deque> #include<algorithm> #include<numeric> #include<utility> #include<complex> #include<functional> using namespace std; /* constant */ typedef long long ll; const ll LINF = 1LL << 60; /* typedef */ typedef vector<ll> vl; /* global variables */ vl v0; /* subroutines */ /* main */ int main() { ll n; cin >> n; for (ll a = 1; a * a <= n; a++) if (n % a == 0) v0.push_back(a); int vn = v0.size(); //printf("%d\n", vn); ll mint = LINF, maxt = 0; for (int i = 0; i < vn; i++) { ll &a = v0[i]; for (int j = i; j < vn; j++) { ll &b = v0[j], ab = a * b; if (n % ab == 0) { ll c = n / ab; if (c >= b) { ll t = a + b + c - 3; if (mint > t) mint = t; if (maxt < t) maxt = t; } } } } printf("%lld %lld\n", mint, maxt); return 0; }