Submission #992959
Source Code Expand
/** * code generated by JHelper * More info: https://github.com/AlexeyDmitriev/JHelper * @author RiaD */ #include <iostream> #include <fstream> #include <iostream> #include <iterator> #include <string> #include <stdexcept> #ifndef SPCPPL_ASSERT #ifdef SPCPPL_DEBUG #define SPCPPL_ASSERT(condition) \ if(!(condition)) { \ throw std::runtime_error(std::string() + #condition + " in line " + std::to_string(__LINE__) + " in " + __PRETTY_FUNCTION__); \ } #else #define SPCPPL_ASSERT(condition) #endif #endif /** * Support decrementing and multi-passing, but not declared bidirectional(or even forward) because * it's reference type is not a reference. * * It doesn't return reference because * 1. Anyway it'll not satisfy requirement [forward.iterators]/6 * If a and b are both dereferenceable, then a == b if and only if *a and * b are bound to the same object. * 2. It'll not work with reverse_iterator that returns operator * of temporary which is temporary for this iterator * * Note, reverse_iterator is not guaranteed to work now too since it works only with bidirectional iterators, * but it's seems to work at least on my implementation. * * It's not really useful anywhere except iterating anyway. */ template <typename T> class IntegerIterator: public std::iterator<std::input_iterator_tag, T, std::ptrdiff_t, T*, T> { public: explicit IntegerIterator(T value): value(value) { } IntegerIterator& operator++() { ++value; return *this; } IntegerIterator operator++(int) { IntegerIterator copy = *this; ++value; return copy; } IntegerIterator& operator--() { --value; return *this; } IntegerIterator operator--(int) { IntegerIterator copy = *this; --value; return copy; } T operator*() const { return value; } bool operator==(IntegerIterator rhs) const { return value == rhs.value; } bool operator!=(IntegerIterator rhs) const { return !(*this == rhs); } private: T value; }; template <typename T> class IntegerRange { public: IntegerRange(T begin, T end): begin_(begin), end_(end) { SPCPPL_ASSERT(begin <= end); } IntegerIterator<T> begin() const { return IntegerIterator<T>(begin_); } IntegerIterator<T> end() const { return IntegerIterator<T>(end_); } private: T begin_; T end_; }; template <typename T> class ReversedIntegerRange { typedef std::reverse_iterator<IntegerIterator<T>> IteratorType; public: ReversedIntegerRange(T begin, T end): begin_(begin), end_(end) { SPCPPL_ASSERT(begin >= end); } IteratorType begin() const { return IteratorType(IntegerIterator<T>(begin_)); } IteratorType end() const { return IteratorType(IntegerIterator<T>(end_)); } private: T begin_; T end_; }; template <typename T> IntegerRange<T> range(T to) { return IntegerRange<T>(0, to); } template <typename T> IntegerRange<T> range(T from, T to) { return IntegerRange<T>(from, to); } template <typename T> IntegerRange<T> inclusiveRange(T to) { return IntegerRange<T>(0, to + 1); } template <typename T> IntegerRange<T> inclusiveRange(T from, T to) { return IntegerRange<T>(from, to + 1); } template <typename T> ReversedIntegerRange<T> downrange(T from) { return ReversedIntegerRange<T>(from, 0); } template <typename T> ReversedIntegerRange<T> downrange(T from, T to) { return ReversedIntegerRange<T>(from, to); } template <typename T> ReversedIntegerRange<T> inclusiveDownrange(T from) { return ReversedIntegerRange<T>(from + 1, 0); } template <typename T> ReversedIntegerRange<T> inclusiveDownrange(T from, T to) { return ReversedIntegerRange<T>(from + 1, to); } using namespace std; class TaskE { public: void solve(std::istream& in, std::ostream& out) { int64_t n, a; in >> n >> a; int64_t ans = n; for (int cnt = 1; cnt <= 70; ++cnt) { int64_t l = 1, r = n + 1; while (r - l > 1) { int64_t m = (l + r) / 2; if (pw(m, cnt) <= n) { l = m; } else { r = m; } } auto m = l; for (int i = 0; i < cnt; ++i) { if (mult(pw(m, i), pw(m + 1, cnt - i)) >= n) { ans = min(ans, (cnt - 1) * a + i * m + (cnt - i) * (m + 1)); } } } out << ans << "\n"; } int64_t inf = 1000000000001; int64_t mult(int64_t a, int64_t b) { if (a > 1000000 && b > 1000000) { return inf; } return min(a * b, inf); } int64_t pw(int64_t a, int b) { int64_t res = 1; for (int i: range(b)){ res = mult(a, res); } return res; } }; int main() { std::ios_base::sync_with_stdio(false); TaskE solver; std::istream& in(std::cin); std::ostream& out(std::cout); in.tie(nullptr); out << std::fixed; out.precision(20); solver.solve(in, out); return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Cookies |
User | riadwaw |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 4878 Byte |
Status | WA |
Exec Time | 3 ms |
Memory | 256 KB |
Judge Result
Set Name | sample | dataset1 | dataset2 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 500 | 0 / 500 | ||||||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
sample | sample-01.txt, sample-02.txt, sample-03.txt |
dataset1 | sample-01.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt |
dataset2 | sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt, 02-21.txt, 02-22.txt, 02-23.txt, 02-24.txt, 02-25.txt, 02-26.txt, 02-27.txt, 02-28.txt, 02-29.txt, 02-30.txt, 02-31.txt, 02-32.txt, 02-33.txt, 02-34.txt, 02-35.txt, 02-36.txt, 02-37.txt, 02-38.txt, 02-39.txt, 02-40.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | AC | 3 ms | 256 KB |
01-02.txt | AC | 3 ms | 256 KB |
01-03.txt | AC | 3 ms | 256 KB |
01-04.txt | AC | 3 ms | 256 KB |
01-05.txt | AC | 3 ms | 256 KB |
01-06.txt | AC | 3 ms | 256 KB |
01-07.txt | WA | 3 ms | 256 KB |
01-08.txt | WA | 3 ms | 256 KB |
01-09.txt | AC | 3 ms | 256 KB |
01-10.txt | AC | 3 ms | 256 KB |
01-11.txt | WA | 3 ms | 256 KB |
01-12.txt | WA | 3 ms | 256 KB |
01-13.txt | AC | 3 ms | 256 KB |
01-14.txt | AC | 3 ms | 256 KB |
01-15.txt | AC | 3 ms | 256 KB |
01-16.txt | AC | 3 ms | 256 KB |
01-17.txt | AC | 3 ms | 256 KB |
01-18.txt | WA | 2 ms | 256 KB |
01-19.txt | AC | 2 ms | 256 KB |
01-20.txt | AC | 2 ms | 256 KB |
01-21.txt | AC | 2 ms | 256 KB |
01-22.txt | AC | 3 ms | 256 KB |
01-23.txt | AC | 3 ms | 256 KB |
01-24.txt | AC | 2 ms | 256 KB |
01-25.txt | AC | 3 ms | 256 KB |
01-26.txt | AC | 2 ms | 256 KB |
02-01.txt | AC | 3 ms | 256 KB |
02-02.txt | AC | 3 ms | 256 KB |
02-03.txt | AC | 3 ms | 256 KB |
02-04.txt | AC | 3 ms | 256 KB |
02-05.txt | AC | 3 ms | 256 KB |
02-06.txt | AC | 3 ms | 256 KB |
02-07.txt | AC | 3 ms | 256 KB |
02-08.txt | AC | 3 ms | 256 KB |
02-09.txt | AC | 3 ms | 256 KB |
02-10.txt | AC | 3 ms | 256 KB |
02-11.txt | AC | 3 ms | 256 KB |
02-12.txt | AC | 3 ms | 256 KB |
02-13.txt | AC | 3 ms | 256 KB |
02-14.txt | AC | 3 ms | 256 KB |
02-15.txt | AC | 3 ms | 256 KB |
02-16.txt | AC | 3 ms | 256 KB |
02-17.txt | AC | 3 ms | 256 KB |
02-18.txt | AC | 3 ms | 256 KB |
02-19.txt | AC | 3 ms | 256 KB |
02-20.txt | WA | 3 ms | 256 KB |
02-21.txt | WA | 3 ms | 256 KB |
02-22.txt | WA | 3 ms | 256 KB |
02-23.txt | WA | 3 ms | 256 KB |
02-24.txt | AC | 3 ms | 256 KB |
02-25.txt | AC | 3 ms | 256 KB |
02-26.txt | AC | 3 ms | 256 KB |
02-27.txt | WA | 3 ms | 256 KB |
02-28.txt | WA | 3 ms | 256 KB |
02-29.txt | AC | 3 ms | 256 KB |
02-30.txt | AC | 3 ms | 256 KB |
02-31.txt | AC | 3 ms | 256 KB |
02-32.txt | AC | 3 ms | 256 KB |
02-33.txt | AC | 3 ms | 256 KB |
02-34.txt | AC | 3 ms | 256 KB |
02-35.txt | AC | 3 ms | 256 KB |
02-36.txt | AC | 3 ms | 256 KB |
02-37.txt | AC | 3 ms | 256 KB |
02-38.txt | AC | 3 ms | 256 KB |
02-39.txt | AC | 3 ms | 256 KB |
02-40.txt | AC | 3 ms | 256 KB |
sample-01.txt | AC | 3 ms | 256 KB |
sample-02.txt | AC | 3 ms | 256 KB |
sample-03.txt | AC | 3 ms | 256 KB |