結果
問題 | No.375 立方体のN等分 (1) |
ユーザー |
![]() |
提出日時 | 2016-07-19 15:42:57 |
言語 | C++11 (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 718 bytes |
コンパイル時間 | 691 ms |
コンパイル使用メモリ | 64,956 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-15 17:20:15 |
合計ジャッジ時間 | 1,753 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 25 WA * 7 |
ソースコード
#include <iostream> #include <vector> #include <algorithm> std::vector<long long int> vec; long long int ans; void f(int p,long long int a,long long int b,long long int c){ if(vec.size()==p){ ans=std::min(a+b+c-3,ans); }else{ long long int e=vec[p]; if(a<=b&&a<=c){ f(p+1,a*e,b,c); }else if(b<=a&&b<=c){ f(p+1,a,b*e,c); }else{ f(p+1,a,b,c*e); } } } int main() { // your code goes here long long int n,t; std::cin>>n; t=n; ans=n; for(long long int i=2;i*i<=n;i++){ while(n%i==0){ n/=i; vec.push_back(i); } } if(n>1){ vec.push_back(n); } std::sort(vec.begin(),vec.end()); std::reverse(vec.begin(),vec.end()); f(0,1,1,1); std::cout<<ans<<" "<<t-1<<"\n"; return 0; }