diff options
Diffstat (limited to 'works/solutions/cpp/1343.cpp')
| -rw-r--r-- | works/solutions/cpp/1343.cpp | 40 | 
1 files changed, 40 insertions, 0 deletions
| diff --git a/works/solutions/cpp/1343.cpp b/works/solutions/cpp/1343.cpp new file mode 100644 index 0000000..24bb762 --- /dev/null +++ b/works/solutions/cpp/1343.cpp @@ -0,0 +1,40 @@ +#include <vector> + +using std::vector; + +class Solution +{ +public: +    int numOfSubarrays(vector<int> &arr, int k, int threshold) +    { +        const auto end = arr.cend(); +        auto iter = arr.cbegin(); +        auto last_iter = arr.cbegin(); + +        double sum = 0; + +        int result = 0; + +        for (int i = 0; i < k; i++) +        { +            sum += *iter++; +        } + +        while (iter != end) +        { +            if (sum / k >= threshold) +            { +                result++; +            } +            sum -= *last_iter++; +            sum += *iter++; +        } + +        if (sum / k >= threshold) +        { +            result++; +        } + +        return result; +    } +}; | 
