From c1b13da17b2d20bdb9392f0e390df771772f0020 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Fri, 29 May 2020 17:37:43 +0200 Subject: chore: order in coding contest folder --- .../coding_contest/tastevin_paths.cpp | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 I_anno/Programmazione_2/coding_contest/tastevin_paths.cpp (limited to 'I_anno/Programmazione_2/coding_contest/tastevin_paths.cpp') diff --git a/I_anno/Programmazione_2/coding_contest/tastevin_paths.cpp b/I_anno/Programmazione_2/coding_contest/tastevin_paths.cpp new file mode 100644 index 0000000..eb7da54 --- /dev/null +++ b/I_anno/Programmazione_2/coding_contest/tastevin_paths.cpp @@ -0,0 +1,67 @@ +// It prints all possible paths + +#include +#include +#include + +using namespace std; + +int main() { + ifstream in("input.txt"); + ofstream out("output.txt"); + + for(int ts = 0; ts < 100; ++ts) { + int N; + in >> N; + vector arr; + int e; + for(int i = 0; i < N; ++i) { + in >> e; + arr.push_back(e); + } + + int max_value{}; + int value; + + for(int i = 0; i < N; ++i) { + vector tmp; + tmp.push_back(i); + value = arr[i]; + for(int j = i+2; j < N; ++j) { + if(arr[j] >= value) { + tmp.push_back(j); + value = arr[j]; + ++j; + } + } + while(!tmp.empty()) { + if(tmp.size() > max_value) { + for(auto const&i : tmp) { + cout << i << ' '; + } + cout << endl; + max_value = tmp.size(); + } + int k = tmp.back(); + tmp.pop_back(); + if(tmp.size() > 0) + value = arr[tmp.back()]; + else + value = arr[k]; + for(int j = k+1; j < N; ++j) { + if(arr[j] >= value) { + value = arr[j]; + tmp.push_back(j); + ++j; + } + } + } + } + + out << max_value << '\n'; + } + + in.close(); + out.close(); + return 0; +} -- cgit v1.2.3-18-g5258