Website Summary Files Commits Branches @commit @diff @stats
path: root / Week13 / Exercise12.cpp
diff options
context:
space:
mode:
Commit5c3b97fb2572ce8940439abd0652d2a7f7a623bd (patch)
Author
 Syndamia <kamen@syndamia.com>
2026-01-11 13:43:39 +0200
Committer
 Syndamia <kamen@syndamia.com>
2026-01-11 13:43:39 +0200
Filesc122f6fba2c8ac11ea022cc4b63fa89798994915 /Week13/Exercise12.cpp
upp-2025-solutions-5c3b97fb2572ce8940439abd0652d2a7f7a623bd.tar
upp-2025-solutions-5c3b97fb2572ce8940439abd0652d2a7f7a623bd.tar.gz
upp-2025-solutions-5c3b97fb2572ce8940439abd0652d2a7f7a623bd.zip
Parent3c427559e32750c40bbd0d95b525ea42e3b37fc7 (diff)
feat(Week13): Add solutions to most exercises
1 files changed, 34 insertions, 0 deletions
-rw-r--r--Week13/Exercise12.cpp34
diff --git a/Week13/Exercise12.cpp b/Week13/Exercise12.cpp
new file mode 100644
index 0000000..107281b
--- /dev/null
+++ b/Week13/Exercise12.cpp
@@ -0,0 +1,34 @@
+#include <iostream>
+
+unsigned max(unsigned a, unsigned b) {
+ return a > b ? a : b;
+}
+
+unsigned longestIncreasing(int* nums, unsigned size, unsigned current) {
+ if (size <= 1)
+ return current + size;
+
+ if (nums[0] < nums[1])
+ return longestIncreasing(nums + 1, size - 1, current + 1);
+ else
+ return max(current + 1, longestIncreasing(nums + 1, size - 1, 0));
+}
+
+unsigned longestIncreasing(int* nums, unsigned size) {
+ return longestIncreasing(nums, size, 0);
+}
+
+int main() {
+ unsigned N;
+ std::cin >> N;
+
+ int* nums = new int[N];
+ for (unsigned i = 0; i < N; ++i)
+ std::cin >> nums[i];
+
+ std::cout << longestIncreasing(nums, N) << std::endl;
+
+ delete[] nums;
+
+ return 0;
+}