one unfinished

This commit is contained in:
DarianTr
2024-06-09 00:49:48 +02:00
parent 3bd1aab755
commit 1653d2658c
3 changed files with 84 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
//
// Created by darian on 07.06.24.
//
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
int n; cin >> n;
vector<ll> in(n);
for (auto &e : in) cin >> e;
int lo = 0;
int hi = 0;
int max_count = 1;
set<ll> 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;
}

View File

@@ -0,0 +1,26 @@
//
// Created by darian on 07.06.24.
//
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
int n; cin >> n;
vector<ll> 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;
}

View File

@@ -0,0 +1,30 @@
//
// Created by darian on 07.06.24.
//
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ll x; cin >> x;
int n; cin >> n;
map<ll, int> distances;
distances[x] = 1;
set<pair<ll, ll>> 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;
}
}