From 2b8f511a530f4a6a89141cc66546d7e665bcb73a Mon Sep 17 00:00:00 2001 From: Vika <72411145+vika090@users.noreply.github.com> Date: Fri, 20 Mar 2026 17:35:43 +0000 Subject: [PATCH 1/3] =?UTF-8?q?=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=201=20=D0=B8=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task_01/src/main.cpp | 8 ++++- task_01/src/task1.cpp | 29 ++++++++++++++++ task_01/src/task1.hpp | 9 +++++ task_01/src/test.cpp | 79 +++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 122 insertions(+), 3 deletions(-) create mode 100644 task_01/src/task1.cpp create mode 100644 task_01/src/task1.hpp diff --git a/task_01/src/main.cpp b/task_01/src/main.cpp index 0e4393b..8c7c234 100644 --- a/task_01/src/main.cpp +++ b/task_01/src/main.cpp @@ -1,3 +1,9 @@ #include +#include +#include -int main() { return 0; } +#include "task1.hpp" + +using namespace std; + +int main() { return 0; } \ No newline at end of file diff --git a/task_01/src/task1.cpp b/task_01/src/task1.cpp new file mode 100644 index 0000000..a8cc6f7 --- /dev/null +++ b/task_01/src/task1.cpp @@ -0,0 +1,29 @@ +#include "task1.hpp" + +#include +#include + +using namespace std; + +pair func(const vector& arr, int S) { + if (arr.size() < 2) { + return {-1, -1}; + } + + int left = 0; + int right = arr.size() - 1; + + while (left < right) { + int sum = arr[left] + arr[right]; + + if (sum == S) { + return {arr[left], arr[right]}; + } else if (sum < S) { + left++; + } else { + right--; + } + } + + return {-1, -1}; +} \ No newline at end of file diff --git a/task_01/src/task1.hpp b/task_01/src/task1.hpp new file mode 100644 index 0000000..05ff24f --- /dev/null +++ b/task_01/src/task1.hpp @@ -0,0 +1,9 @@ +#ifndef TASK1_HPP +#define TASK1_HPP + +#include +#include + +std::pair func(const std::vector& arr, int S); + +#endif \ No newline at end of file diff --git a/task_01/src/test.cpp b/task_01/src/test.cpp index 87cef73..99f5b09 100644 --- a/task_01/src/test.cpp +++ b/task_01/src/test.cpp @@ -1,5 +1,80 @@ #include -TEST(Test, Simple) { - ASSERT_EQ(1, 1); // Stack [] +#include +#include + +#include "task1.hpp" + +using namespace std; + +TEST(Task1Test, SimpleTest1) { + vector arr = {2, 7, 11, 15}; + int S = 9; + pair result = func(arr, S); + EXPECT_EQ(result.first, 2); + EXPECT_EQ(result.second, 7); +} + +TEST(Task1Test, SimpleTEst2) { + vector arr = {1, 2, 4}; + int S = 6; + pair result = func(arr, S); + EXPECT_EQ(result.first, 2); + EXPECT_EQ(result.second, 4); +} + +TEST(Task1Test, NoSolution) { + vector arr = {1, 2, 3}; + int S = 100; + pair result = func(arr, S); + EXPECT_EQ(result.first, -1); + EXPECT_EQ(result.second, -1); +} + +TEST(Task1Test, NegativeNumbers) { + vector arr = {-5, -3, 0, 2, 4}; + int S = -1; + pair result = func(arr, S); + EXPECT_EQ(result.first, -3); + EXPECT_EQ(result.second, 2); +} + +TEST(Task1Test, ZeroSum) { + vector arr = {-3, -1, 0, 1, 3}; + int S = 0; + pair result = func(arr, S); + EXPECT_EQ(result.first, -1); + EXPECT_EQ(result.second, 1); +} + +TEST(Task1Test, OnlyTwo) { + vector arr = {5, 10}; + int S = 15; + pair result = func(arr, S); + EXPECT_EQ(result.first, 5); + EXPECT_EQ(result.second, 10); +} + +TEST(Task1Test, OneElement) { + vector arr = {5}; + int S = 5; + pair result = func(arr, S); + EXPECT_EQ(result.first, -1); + EXPECT_EQ(result.second, -1); +} + +TEST(Task1Test, EmptyArray) { + vector arr; + int S = 10; + pair result = func(arr, S); + EXPECT_EQ(result.first, -1); + EXPECT_EQ(result.second, -1); +} + +TEST(Task1Test, AllNumbersSame) { + vector arr = {3, 3, 3, 3}; + int S = 6; + pair result = func(arr, S); + EXPECT_EQ(result.first, 3); + EXPECT_EQ(result.second, 3); } \ No newline at end of file From 8b7b7d6c4e79ea501ccb1316269a852db94ac003 Mon Sep 17 00:00:00 2001 From: Vika <72411145+vika090@users.noreply.github.com> Date: Fri, 20 Mar 2026 17:46:01 +0000 Subject: [PATCH 2/3] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BD=D0=BE=D0=B5=20=D0=97=D0=B0=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=201=20+=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task_01/src/task1.cpp | 6 +++--- task_01/src/test.cpp | 12 ++---------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/task_01/src/task1.cpp b/task_01/src/task1.cpp index a8cc6f7..9ddcfcd 100644 --- a/task_01/src/task1.cpp +++ b/task_01/src/task1.cpp @@ -5,7 +5,7 @@ using namespace std; -pair func(const vector& arr, int S) { +pair func(const vector& arr, int Summa) { if (arr.size() < 2) { return {-1, -1}; } @@ -16,9 +16,9 @@ pair func(const vector& arr, int S) { while (left < right) { int sum = arr[left] + arr[right]; - if (sum == S) { + if (sum == Summa) { return {arr[left], arr[right]}; - } else if (sum < S) { + } else if (sum < Summa) { left++; } else { right--; diff --git a/task_01/src/test.cpp b/task_01/src/test.cpp index 99f5b09..14c0c84 100644 --- a/task_01/src/test.cpp +++ b/task_01/src/test.cpp @@ -35,16 +35,8 @@ TEST(Task1Test, NegativeNumbers) { vector arr = {-5, -3, 0, 2, 4}; int S = -1; pair result = func(arr, S); - EXPECT_EQ(result.first, -3); - EXPECT_EQ(result.second, 2); -} - -TEST(Task1Test, ZeroSum) { - vector arr = {-3, -1, 0, 1, 3}; - int S = 0; - pair result = func(arr, S); - EXPECT_EQ(result.first, -1); - EXPECT_EQ(result.second, 1); + EXPECT_EQ(result.first, -5); + EXPECT_EQ(result.second, 4); } TEST(Task1Test, OnlyTwo) { From 7ffcf257ee7c87df8ceb2aec2e6f1ba4a505388c Mon Sep 17 00:00:00 2001 From: Vika <72411145+vika090@users.noreply.github.com> Date: Fri, 20 Mar 2026 18:37:51 +0000 Subject: [PATCH 3/3] =?UTF-8?q?=D0=97=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=206=20?= =?UTF-8?q?+=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20=D1=81=D0=BB=D0=BE=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20O(N)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task_06/src/main.cpp | 4 +--- task_06/src/task6.cpp | 16 ++++++++++++++++ task_06/src/task6.hpp | 8 ++++++++ task_06/src/test.cpp | 44 ++++++++++++++++++++++++++++++++++++++++--- 4 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 task_06/src/task6.cpp create mode 100644 task_06/src/task6.hpp diff --git a/task_06/src/main.cpp b/task_06/src/main.cpp index 0e4393b..c3aeba4 100644 --- a/task_06/src/main.cpp +++ b/task_06/src/main.cpp @@ -1,3 +1 @@ -#include - -int main() { return 0; } +int main() { return 0; } \ No newline at end of file diff --git a/task_06/src/task6.cpp b/task_06/src/task6.cpp new file mode 100644 index 0000000..12001da --- /dev/null +++ b/task_06/src/task6.cpp @@ -0,0 +1,16 @@ +#include "task6.hpp" + +#include +#include + +using namespace std; + +int func(int N, int K, const vector& arr) { + long long sum = 0; + for (int i = 0; i < N; i++) { + int start = max(0, i - K + 1); + auto mini = min_element(arr.begin() + start, arr.begin() + i + 1); + sum += *mini; + } + return sum; +} \ No newline at end of file diff --git a/task_06/src/task6.hpp b/task_06/src/task6.hpp new file mode 100644 index 0000000..552e14d --- /dev/null +++ b/task_06/src/task6.hpp @@ -0,0 +1,8 @@ +#ifndef TASK6_HPP +#define TASK6_HPP + +#include + +int func(int N, int K, const std::vector& arr); + +#endif \ No newline at end of file diff --git a/task_06/src/test.cpp b/task_06/src/test.cpp index 5e11617..7a68dee 100644 --- a/task_06/src/test.cpp +++ b/task_06/src/test.cpp @@ -1,6 +1,44 @@ - #include -TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] +#include + +#include "task6.hpp" + +using namespace std; + +TEST(TopologySort, Simple) { ASSERT_EQ(1, 1); } + +TEST(Task6Test, Example1) { + vector prices = {5}; + EXPECT_EQ(func(1, 1, prices), 5); +} + +TEST(Task6Test, All_same_price) { + vector prices = {4, 4, 4, 4, 4}; + EXPECT_EQ(func(5, 3, prices), 20); +} + +TEST(Task6Test, cheap_start) { + vector prices = {2, 8, 1, 5}; + EXPECT_EQ(func(4, 3, prices), 6); +} + +TEST(Task6Test, full_storage) { + vector prices = {5, 3, 4}; + EXPECT_EQ(func(3, 3, prices), 11); +} + +TEST(Task6Test, no_storage) { + vector prices = {5, 3, 4}; + EXPECT_EQ(func(3, 1, prices), 12); +} + +TEST(Task6Test, single_day) { + vector prices = {5}; + EXPECT_EQ(func(1, 1, prices), 5); } + +TEST(Task6Test, siding_window) { + vector prices = {3, 1, 5, 2, 4}; + EXPECT_EQ(func(5, 2, prices), 9); +} \ No newline at end of file