diff --git a/cpp/2304/230405.cpp b/cpp/2304/230405.cpp new file mode 100644 index 0000000..6184a8c --- /dev/null +++ b/cpp/2304/230405.cpp @@ -0,0 +1,34 @@ +#include +#include + +/** + * 2439. Minimize Maximum of Array + * + * You are given a 0-indexed array nums comprising of n non-negative integers. + * + * In one operation, you must: + * + * Choose an integer i such that 1 <= i < n and nums[i] > 0. + * Decrease nums[i] by 1. + * Increase nums[i - 1] by 1. + * Return the minimum possible value of the maximum integer of nums after performing any number of operations. + */ + +class Solution { +public: + static int minimizeArrayValue(const std::vector& nums) { + const int n = nums.size(); + int ret = 0; + unsigned long long sum = 0; + for (int i = 0; i < n; ++i) { + sum += nums[i]; + ret = std::max(ret, static_cast(sum / (i + 1) + !!(sum % (i + 1)))); + } + return ret; + } +}; + +int main() { + std::cout << Solution::minimizeArrayValue({3,7,1,6}); + return 0; +} diff --git a/cpp/2304/CMakeLists.txt b/cpp/2304/CMakeLists.txt index dbe10aa..698b748 100644 --- a/cpp/2304/CMakeLists.txt +++ b/cpp/2304/CMakeLists.txt @@ -4,4 +4,4 @@ PROJECT(2304) SET(CMAKE_CXX_STANDARD 23) SET(CMAKE_EXPORT_COMPILE_COMMANDS true) -ADD_EXECUTABLE(2304 230405-CN.cpp) +ADD_EXECUTABLE(2304 230405.cpp) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index d83ea5c..dd064e2 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -11,7 +11,7 @@ ELSE() ENDIF() IF(UNIX) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer") +# SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer") ENDIF() # Optimisation