結果
| 問題 |
No.375 立方体のN等分 (1)
|
| コンテスト | |
| ユーザー |
siguma323
|
| 提出日時 | 2016-06-05 00:39:12 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,346 bytes |
| コンパイル時間 | 1,874 ms |
| コンパイル使用メモリ | 172,680 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-08 13:22:46 |
| 合計ジャッジ時間 | 3,006 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 25 WA * 7 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ull = unsigned long long;
using ll = long long;
int main()
{
ull N;
cin >> N;
ll num1 = 1;
ll num2= 1;
ll num3 = 1;
ll count = num1*num2*num3;
// if(N&1)
// {
map<ll,ll,greater<ll>> res;
ll tmp = N;
for(ll i = 2; i*i <= tmp; ++i)
{
while(tmp % i == 0)
{
++res[i];
tmp /= i;
}
}
if(tmp != 1) res[tmp] = 1;
for(auto&& x : res)
{
for(int i = 0; i < x.second; ++i)
{
if(num1 <= num2 && num1 <= num3)
num1 *= x.first;
else if(num2 <= num3)
num2*= x.first;
else
num3*= x.first;
}
}
count = num1*num2*num3;
// }
// else
// {
// while(count != N && count < N)
// {
// if(num1 == num3)
// ++num1;
// else if(num2 == num3)
// ++num2;
// else
// ++num3;
// count = num1*num2*num3;
// }
// }
if(count != N)
cout << N-1 << ' ' << N-1 << endl;
else
cout << (num1-1) + (num2-1) + (num3-1) << ' ' << N-1 << endl;
}
siguma323