From 1653d2658c77fea3401d5541d09ff2a73a8cdb01 Mon Sep 17 00:00:00 2001 From: DarianTr Date: Sun, 9 Jun 2024 00:49:48 +0200 Subject: [PATCH] one unfinished --- CSES - CSES Problem Set/Playlist.cpp | 28 ++++++++++++++++++++ CSES - CSES Problem Set/Towers.cpp | 26 +++++++++++++++++++ CSES - CSES Problem Set/Traffic_Lights.cpp | 30 ++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 CSES - CSES Problem Set/Playlist.cpp create mode 100644 CSES - CSES Problem Set/Towers.cpp create mode 100644 CSES - CSES Problem Set/Traffic_Lights.cpp diff --git a/CSES - CSES Problem Set/Playlist.cpp b/CSES - CSES Problem Set/Playlist.cpp new file mode 100644 index 0000000..a0862c0 --- /dev/null +++ b/CSES - CSES Problem Set/Playlist.cpp @@ -0,0 +1,28 @@ +// +// Created by darian on 07.06.24. +// + +#include +using namespace std; +using ll = long long; + +int main() { + int n; cin >> n; + vector in(n); + for (auto &e : in) cin >> e; + int lo = 0; + int hi = 0; + int max_count = 1; + set current = {in[0]}; + + while (hi < n - 1) { + hi++; + while (current.count(in[hi])) { + current.erase(in[lo]); + lo++; + } + current.insert(in[hi]); + max_count = max(max_count, (int)current.size()); + } + cout << max_count << endl; +} \ No newline at end of file diff --git a/CSES - CSES Problem Set/Towers.cpp b/CSES - CSES Problem Set/Towers.cpp new file mode 100644 index 0000000..908c353 --- /dev/null +++ b/CSES - CSES Problem Set/Towers.cpp @@ -0,0 +1,26 @@ +// +// Created by darian on 07.06.24. +// + +#include +using namespace std; +using ll = long long; + +int main() { + int n; cin >> n; + vector towers; + for (int i{}; i < n; i++) { + ll a; cin >> a; + auto it = std::lower_bound(towers.begin(), towers.end(), a+1); + if (it == towers.begin()) { + if (towers.size()) towers[0] = a; + else towers.insert(towers.begin(), a); + } else if (it == towers.end()) { + towers.push_back(a); + } else { + towers[it - towers.begin()] = a; + } + } + + cout << towers.size() << endl; +} \ No newline at end of file diff --git a/CSES - CSES Problem Set/Traffic_Lights.cpp b/CSES - CSES Problem Set/Traffic_Lights.cpp new file mode 100644 index 0000000..bba7b35 --- /dev/null +++ b/CSES - CSES Problem Set/Traffic_Lights.cpp @@ -0,0 +1,30 @@ +// +// Created by darian on 07.06.24. +// + +#include +using namespace std; +using ll = long long; + +int main() { + ll x; cin >> x; + int n; cin >> n; + map distances; + distances[x] = 1; + set> lines = {{0, x}}; + + for (int i{}; i < n; i++) { + ll t; cin >> t; + auto it = lines.lower_bound({t, t}); + --it; + auto p = *it; + lines.erase(p); + lines.insert({p.first, t}); + lines.insert({t, p.second}); + if (distances[p.second - p.first] == 1) distances.erase(p.second - p.first); + distances[t - p.first]++; + distances[p.second - t]++; + cout << (*distances.rbegin()).first << endl; + } + +} \ No newline at end of file