From 7eee5a78005a9a569186d2c8b4b645a818ab9bf1 Mon Sep 17 00:00:00 2001 From: Stoycho Kyosev Date: Sun, 6 Oct 2024 07:04:44 -0400 Subject: Cleanup --- Seminar02/task04.cpp | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 Seminar02/task04.cpp (limited to 'Seminar02/task04.cpp') diff --git a/Seminar02/task04.cpp b/Seminar02/task04.cpp deleted file mode 100644 index 91207a0..0000000 --- a/Seminar02/task04.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include -#include - -class firstLeftGreaterElement { -private: - std::vector data; - - void init(const std::vector& v) { - std::stack monotonicStack; - - data.resize(v.size()); - - for (size_t i = 0; i < v.size(); i++) { - while(!monotonicStack.empty() && monotonicStack.top() < v[i]) { - monotonicStack.pop(); - } - - data[i] = monotonicStack.empty() ? -1 : monotonicStack.top(); - monotonicStack.push(v[i]); - } - } - -public: - firstLeftGreaterElement(const std::vector& v) { - init(v); - } - - int getFirstLeftGreaterElement(size_t idx) const { - return data[idx]; - } -}; - -int main() { - std::vector example {4, 7, 2, 3, 12, 6, 4, 13}; - std::vector example2 {1, 4, 3, 8, 12, 7}; - - firstLeftGreaterElement f(example); - firstLeftGreaterElement s(example2); - - for (size_t i = 0; i < example.size(); i++) - std::cout << f.getFirstLeftGreaterElement(i) << " "; - - std::cout << std::endl; - - std::cout << s.getFirstLeftGreaterElement(0) << " " << s.getFirstLeftGreaterElement(2) << " " << s.getFirstLeftGreaterElement(5); -} \ No newline at end of file -- cgit v1.3.1-23-gd82d