Submission #00177
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | #pragma GCC optimize("O3") #include <bits/extc++.h> using namespace std; #define rep(i,n) for(int i=0;i<(n);++i) #define reps(i,n) for(int i=1;i<=(n);++i) #define all(x) begin(x),end(x) #define Fixed fixed << setprecision(12) #define int int_fast64_t using pii = pair< int , int >; constexpr int32_t INF = 0x3f3f3f3f; constexpr int_fast64_t LINF = 0x3f3f3f3f3f3f3f3fLL; constexpr int mod1 = 1e9+7; constexpr int mod2 = 998244353; template < class Func> class FixPoint : Func { public : explicit constexpr FixPoint(Func&& f) noexcept : Func(forward<Func>(f)) {} template < class ... Args> constexpr decltype(auto) operator()(Args&&... args) const { return Func::operator()(* this , std::forward<Args>(args)...); } }; template < class Func> static inline constexpr decltype(auto) makeFixPoint(Func&& f) noexcept { return FixPoint<Func>{forward<Func>(f)}; } template < class T, class U> istream& operator>>(istream& is, pair<T, U>& p){ is >> p.first >> p.second; return (is); } template < class T, class U> ostream& operator<<(ostream& os, pair<T, U>& p){ os << p.first << ' ' << p.second; return (os); } template < class A, class B> inline bool chmax(A &a, const B &b) { return b > a && (a = b, true ); } template < class A, class B> inline bool chmin(A &a, const B &b) { return b < a && (a = b, true ); } template < class T> using max_heap = priority_queue<T>; template < class T> using min_heap = priority_queue<T, vector<T>, greater<T> >; template < class A, class B> using umap = unordered_map<A, B>; template < class T> using uset = unordered_set<T>; template < class T> using Max_Heap = __gnu_pbds::priority_queue<T, less<T>, __gnu_pbds::rc_binomial_heap_tag>; template < class T> using Min_Heap = __gnu_pbds::priority_queue<T, greater<T>, __gnu_pbds::rc_binomial_heap_tag>; template < class T> using Set = __gnu_pbds::tree<T, __gnu_pbds::null_type, less<T>, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update>; template < class K, class V> using Umap = __gnu_pbds::gp_hash_table<K, V>; template < class T> using Rope = __gnu_cxx::rope<T>; using Trie = __gnu_pbds::trie<string, __gnu_pbds::null_type, __gnu_pbds::trie_string_access_traits<>, __gnu_pbds::pat_trie_tag, __gnu_pbds::trie_prefix_search_node_update>; inline int square( int a){ return a * a;} inline int updiv( int a, int b){ return (a + b - 1) / b; } constexpr int dx[] = {1,0,-1,0,1,1,-1,-1}; constexpr int dy[] = {0,-1,0,1,1,-1,-1,1}; signed main(){ cin.tie(nullptr); ios_base::sync_with_stdio( false ); cout.setf(ios_base::fixed); cout.precision(10); int p; while (cin >> p, p){ vector< int > v, cnt; for ( int i = 2; i * i <= p; ++i){ if (p % i == 0){ v.emplace_back(i); cnt.emplace_back(0); while (p % i == 0){ p /= i; ++cnt.back(); } } } if (p != 1){ v.emplace_back(p); cnt.emplace_back(1); } int siz = v.size(); int a, b, c; a = b = c = 1; int ans = makeFixPoint([&](auto rec, int k, int a, int b, int c) -> int { if (k == siz){ return (a + b + c); } else { int res = LINF; int pa = a; int pb = b; int pc = c; for ( int i = 0; i <= cnt[k]; ++i){ a = pa; for ( int j = 0; j < i; ++j){ a *= v[k]; } for ( int j = 0; j + i <= cnt[k]; ++j){ b = pb, c = pc; for ( int l = 0; l < j; ++l){ b *= v[k]; } for ( int l = 0; l < cnt[k] - (i + j); ++l){ c *= v[k]; } chmin(res, rec(k + 1, a, b, c)); } } return (res); } })(0, 1, 1, 1); cout << ans << '\n' ; } return (0); } |
ステータス
項目 | データ |
---|---|
問題 | 0006 - 荷物 |
ユーザー名 | ei1903 |
投稿日時 | 2021-03-30 16:10:39 |
言語 | C++17 |
状態 | Time Limit Exceeded |
得点 | 0 |
ソースコード長 | 4233 Byte |
最大実行時間 | 8000 ms |
最大メモリ使用量 | 600 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 0 / 30 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
C1 | TLE | 8000 ms | 600 KB |
1
|
C2 | TLE | 8000 ms | 548 KB |
1
|
C3 | TLE | 8000 ms | 496 KB |
1
|
C4 | TLE | 8000 ms | 444 KB |
1
|