feat(cses): a few problems

This commit is contained in:
Barrett Ruth 2025-02-21 11:26:06 -05:00
parent 3985e732d4
commit 4f0c2d75c5
65 changed files with 1197 additions and 35 deletions

View file

@ -92,18 +92,7 @@ void NO() {
static constexpr int MOD = 1e9 + 7; static constexpr int MOD = 1e9 + 7;
void solve() { void solve() {
int n; println("HI");
cin >> n;
int l = -1, r = -1;
FOR(i, 0, n) {
char c;
cin >> c;
if (l == -1 && c == 'B') l = i;
if (c == 'B') r = i;
}
println(r - l + 1);
} }
int main() { int main() {

View file

@ -1,24 +1,11 @@
hi HI
HI
HI
HI
HI
HI
HI
HI
4 [code]: 0
hi [time]: 4.7996 ms
1
hi
1
hi
2
hi
4
hi
6
hi
4
hi
7

View file

@ -0,0 +1,9 @@
BasedOnStyle: Google
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLambdasOnASingleLine: false
AllowShortLoopsOnASingleLine: false

View file

@ -0,0 +1,8 @@
CompileFlags:
Add:
- -Wall
- -Wextra
- -Wpedantic
- -Wshadow
- -DLOCAL
- -Wno-unknown-pragmas

View file

@ -0,0 +1,5 @@
-Wall
-Wextra
-Wpedantic
-Wshadow
-DLOCAL

View file

@ -0,0 +1,65 @@
#include <bits/stdc++.h> // {{{
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
template <typename T>
constexpr T MIN = std::numeric_limits<T>::min();
template <typename T>
constexpr T MAX = std::numeric_limits<T>::max();
template <typename T>
[[nodiscard]] static T sc(auto &&x) {
return static_cast<T>(x);
}
template <typename T>
[[nodiscard]] static T sz(auto &&x) {
return static_cast<T>(x.size());
}
using ll = long long;
using ld = long double;
template <typename T>
using vec = std::vector<T>;
template <typename T, size_t N>
using arr = std::array<T, N>;
#define ff first
#define ss second
#define eb emplace_back
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
// }}}
void solve() {
ll ans = 0;
int n;
cin >> n;
ll last = 0;
while (n--) {
ll x;
cin >> x;
if (last != 0 && last > x) {
ans += last - x;
x += last - x;
}
last = x;
}
cout << ans << endl;
}
int main() { // {{{
cin.tie(nullptr)->sync_with_stdio(false);
solve();
return 0;
}
// }}}

View file

@ -0,0 +1,2 @@
10
1000000000 1 1 1 1 1 1 1 1 1

View file

@ -0,0 +1,4 @@
8999999991
[code]: 0
[time]: 4.4868 ms

View file

@ -0,0 +1,9 @@
BasedOnStyle: Google
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLambdasOnASingleLine: false
AllowShortLoopsOnASingleLine: false

View file

@ -0,0 +1,8 @@
CompileFlags:
Add:
- -Wall
- -Wextra
- -Wpedantic
- -Wshadow
- -DLOCAL
- -Wno-unknown-pragmas

View file

@ -0,0 +1,6 @@
-Wall
-Wextra
-Wpedantic
-Wshadow
-DLOCAL
-std=c++20

View file

@ -0,0 +1,65 @@
#include <bits/stdc++.h> // {{{
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
template <typename T>
constexpr T MIN = std::numeric_limits<T>::min();
template <typename T>
constexpr T MAX = std::numeric_limits<T>::max();
template <typename T>
[[nodiscard]] static T sc(auto&& x) {
return static_cast<T>(x);
}
template <typename T>
[[nodiscard]] static T sz(auto&& x) {
return static_cast<T>(x.size());
}
using ll = long long;
using ld = long double;
template <typename T>
using vec = std::vector<T>;
template <typename T, size_t N>
using arr = std::array<T, N>;
#define ff first
#define ss second
#define eb emplace_back
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
// }}}
void solve() {
int n;
cin >> n;
vec<bool> seen(n + 1, false);
while (--n) {
int x;
cin >> x;
seen[x] = true;
}
for (int i = 1; i < sz<int>(seen); ++i) {
if (!seen[i]) {
cout << i << endl;
break;
}
}
}
int main() { // {{{
cin.tie(nullptr)->sync_with_stdio(false);
solve();
return 0;
}
// }}}

View file

@ -0,0 +1,2 @@
5
2 3 1 5

View file

@ -0,0 +1,4 @@
4
[code]: 0
[time]: 3.88908 ms

View file

@ -0,0 +1,9 @@
BasedOnStyle: Google
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLambdasOnASingleLine: false
AllowShortLoopsOnASingleLine: false

View file

@ -0,0 +1,8 @@
CompileFlags:
Add:
- -Wall
- -Wextra
- -Wpedantic
- -Wshadow
- -DLOCAL
- -Wno-unknown-pragmas

View file

@ -0,0 +1,5 @@
-Wall
-Wextra
-Wpedantic
-Wshadow
-DLOCAL

View file

@ -0,0 +1,62 @@
#include <bits/stdc++.h> // {{{
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
template <typename T>
constexpr T MIN = std::numeric_limits<T>::min();
template <typename T>
constexpr T MAX = std::numeric_limits<T>::max();
template <typename T>
[[nodiscard]] static T sc(auto &&x) {
return static_cast<T>(x);
}
template <typename T>
[[nodiscard]] static T sz(auto &&x) {
return static_cast<T>(x.size());
}
using ll = long long;
using ld = long double;
template <typename T>
using vec = std::vector<T>;
template <typename T, size_t N>
using arr = std::array<T, N>;
#define ff first
#define ss second
#define eb emplace_back
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
// }}}
void solve() {
ll x, y;
cin >> y >> x;
ll base = max(x, y);
ll ans = base * base;
if (ans & 1)
swap(x, y);
ans -= x - 1 + base - y;
cout << ans << endl;
}
int main() { // {{{
cin.tie(nullptr)->sync_with_stdio(false);
int t;
cin >> t;
while (t--)
solve();
return 0;
}
// }}}

View file

@ -0,0 +1,5 @@
4
2 3
1 1
4 2
2 4

View file

@ -0,0 +1,7 @@
8
1
15
11
[code]: 0
[time]: 4.26793 ms

View file

@ -0,0 +1,9 @@
BasedOnStyle: Google
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLambdasOnASingleLine: false
AllowShortLoopsOnASingleLine: false

View file

@ -0,0 +1,8 @@
CompileFlags:
Add:
- -Wall
- -Wextra
- -Wpedantic
- -Wshadow
- -DLOCAL
- -Wno-unknown-pragmas

View file

@ -0,0 +1,5 @@
-Wall
-Wextra
-Wpedantic
-Wshadow
-DLOCAL

View file

@ -0,0 +1,76 @@
#include <bits/stdc++.h> // {{{
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
template <typename T>
constexpr T MIN = std::numeric_limits<T>::min();
template <typename T>
constexpr T MAX = std::numeric_limits<T>::max();
template <typename T>
[[nodiscard]] static T sc(auto &&x) {
return static_cast<T>(x);
}
template <typename T>
[[nodiscard]] static T sz(auto &&x) {
return static_cast<T>(x.size());
}
using ll = long long;
using ld = long double;
template <typename T>
using vec = std::vector<T>;
template <typename T, size_t N>
using arr = std::array<T, N>;
#define ff first
#define ss second
#define eb emplace_back
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
// }}}
void solve() {
int n;
cin >> n;
/*
n= 5;
1 4 2 5 3
1 4 2 5 3 6
1 7 2 6 3 5 4
41325
*/
if (n == 1) {
cout << 1 << endl;
} else if (n <= 3) {
cout << "NO SOLUTION\n";
} else {
for (int cur = n & 1 ? n - 1 : n; cur > 4; cur -= 2) {
cout << cur << ' ';
}
cout << "2 4";
for (int cur = 1; cur <= n; cur += 2) {
cout << ' ' << cur;
}
}
}
int main() { // {{{
cin.tie(nullptr)->sync_with_stdio(false);
solve();
return 0;
}
// }}}

View file

@ -0,0 +1 @@
1

View file

@ -0,0 +1,4 @@
1
[code]: 0
[time]: 4.06551 ms

View file

@ -0,0 +1,9 @@
BasedOnStyle: Google
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLambdasOnASingleLine: false
AllowShortLoopsOnASingleLine: false

8
cses/repetitions/.clangd Normal file
View file

@ -0,0 +1,8 @@
CompileFlags:
Add:
- -Wall
- -Wextra
- -Wpedantic
- -Wshadow
- -DLOCAL
- -Wno-unknown-pragmas

View file

@ -0,0 +1,5 @@
-Wall
-Wextra
-Wpedantic
-Wshadow
-DLOCAL

View file

@ -0,0 +1,60 @@
#include <bits/stdc++.h> // {{{
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
template <typename T> constexpr T MIN = std::numeric_limits<T>::min();
template <typename T> constexpr T MAX = std::numeric_limits<T>::max();
template <typename T> [[nodiscard]] static T sc(auto &&x) {
return static_cast<T>(x);
}
template <typename T> [[nodiscard]] static T sz(auto &&x) {
return static_cast<T>(x.size());
}
using ll = long long;
using ld = long double;
template <typename T> using vec = std::vector<T>;
template <typename T, size_t N> using arr = std::array<T, N>;
#define ff first
#define ss second
#define eb emplace_back
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
// }}}
void solve() {
string s;
cin >> s;
ll streak = 0, ans = 0;
char last = ' ';
for (auto c : s) {
if (last == ' ' || last == c) {
++streak;
ans = max(ans, streak);
} else {
streak = 1;
}
last = c;
}
cout << ans << endl;
}
int main() { // {{{
cin.tie(nullptr)->sync_with_stdio(false);
solve();
return 0;
}
// }}}

View file

@ -0,0 +1 @@
ABCDEF

View file

@ -0,0 +1,4 @@
1
[code]: 0
[time]: 4.20523 ms

View file

@ -0,0 +1,9 @@
BasedOnStyle: Google
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLambdasOnASingleLine: false
AllowShortLoopsOnASingleLine: false

8
cses/two-knights/.clangd Normal file
View file

@ -0,0 +1,8 @@
CompileFlags:
Add:
- -Wall
- -Wextra
- -Wpedantic
- -Wshadow
- -DLOCAL
- -Wno-unknown-pragmas

View file

@ -0,0 +1,5 @@
-Wall
-Wextra
-Wpedantic
-Wshadow
-DLOCAL

View file

@ -0,0 +1,58 @@
#include <bits/stdc++.h> // {{{
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
template <typename T>
constexpr T MIN = std::numeric_limits<T>::min();
template <typename T>
constexpr T MAX = std::numeric_limits<T>::max();
template <typename T>
[[nodiscard]] static T sc(auto &&x) {
return static_cast<T>(x);
}
template <typename T>
[[nodiscard]] static T sz(auto &&x) {
return static_cast<T>(x.size());
}
using ll = long long;
using ld = long double;
template <typename T>
using vec = std::vector<T>;
template <typename T, size_t N>
using arr = std::array<T, N>;
#define ff first
#define ss second
#define eb emplace_back
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
// }}}
void solve() {
int n;
cin >> n;
for (ll i = 1; i <= n; ++i) {
ll ans = (i * i) * (i * i - 1) / 2;
ans -= 2 * 2 * (i - 1) * (i - 2);
cout << ans << endl;
}
}
int main() { // {{{
cin.tie(nullptr)->sync_with_stdio(false);
solve();
return 0;
}
// }}}

View file

@ -0,0 +1 @@
8

View file

@ -0,0 +1,11 @@
0
6
28
96
252
550
1056
1848
[code]: 0
[time]: 4.07505 ms

View file

@ -0,0 +1,9 @@
BasedOnStyle: Google
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLambdasOnASingleLine: false
AllowShortLoopsOnASingleLine: false

8
cses/two-sets/.clangd Normal file
View file

@ -0,0 +1,8 @@
CompileFlags:
Add:
- -Wall
- -Wextra
- -Wpedantic
- -Wshadow
- -DLOCAL
- -Wno-unknown-pragmas

View file

@ -0,0 +1,6 @@
-Wall
-Wextra
-Wpedantic
-Wshadow
-DLOCAL
-std=c++20

89
cses/two-sets/solution.cc Normal file
View file

@ -0,0 +1,89 @@
#include <bits/stdc++.h> // {{{
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
template <typename T>
constexpr T MIN = std::numeric_limits<T>::min();
template <typename T>
constexpr T MAX = std::numeric_limits<T>::max();
template <typename T>
[[nodiscard]] static T sc(auto &&x) {
return static_cast<T>(x);
}
template <typename T>
[[nodiscard]] static T sz(auto &&x) {
return static_cast<T>(x.size());
}
using ll = long long;
using ld = long double;
template <typename T>
using vec = std::vector<T>;
template <typename T, size_t N>
using arr = std::array<T, N>;
#define ff first
#define ss second
#define eb emplace_back
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
// }}}
struct hash_pair {
size_t operator()(const pair<int, int> &p) const {
return hash<int>()(p.first) ^ (hash<int>()(p.second) << 1);
}
};
void solve() {
ll n;
cin >> n;
ll full = n * (n + 1) / 2;
if (full & 1) {
cout << "NO\n";
return;
}
ll half = full / 2;
vec<int> ans1, ans2;
ll total1 = 0;
for (int i = n; i >= 1; --i) {
if (total1 + i <= half) {
ans1.eb(i);
total1 += i;
} else {
ans2.eb(i);
}
}
cout << ans1.size() << endl;
for (auto e : ans1)
cout << e << ' ';
cout << endl;
cout << ans2.size() << endl;
for (auto e : ans2)
cout << e << ' ';
cout << endl;
cout << endl;
}
int main() { // {{{
cin.tie(nullptr)->sync_with_stdio(false);
solve();
return 0;
}
// }}}

View file

@ -0,0 +1 @@
7

View file

@ -0,0 +1,8 @@
3
7 6 1
4
5 4 3 2
[code]: 0
[time]: 11.0717 ms

View file

@ -0,0 +1,9 @@
BasedOnStyle: Google
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLambdasOnASingleLine: false
AllowShortLoopsOnASingleLine: false

View file

@ -0,0 +1,9 @@
CompileFlags:
Add:
- -std=c++23
- -Wall
- -Wextra
- -Wpedantic
- -Wshadow
- -DLOCAL
- -Wno-unknown-pragmas

View file

@ -0,0 +1,6 @@
-std=c++23
-Wall
-Wextra
-Wpedantic
-Wshadow
-DLOCAL

View file

@ -0,0 +1,64 @@
#include <bits/stdc++.h> // {{{
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
template <typename T>
constexpr T MIN = std::numeric_limits<T>::min();
template <typename T>
constexpr T MAX = std::numeric_limits<T>::max();
template <typename T>
[[nodiscard]] static T sc(auto &&x) {
return static_cast<T>(x);
}
template <typename T>
[[nodiscard]] static T sz(auto &&x) {
return static_cast<T>(x.size());
}
using ll = long long;
using ld = long double;
template <typename T>
using vec = std::vector<T>;
template <typename T, size_t N>
using arr = std::array<T, N>;
#define ff first
#define ss second
#define eb emplace_back
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
// }}}
void solve() {
ll n;
cin >> n;
while (n != 1) {
cout << n << ' ';
if (n & 1) {
n = n * 3 + 1;
} else {
n /= 2;
}
}
cout << 1 << endl;
}
// {{{
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
solve();
return 0;
}
// }}}

View file

@ -0,0 +1 @@
3

View file

@ -0,0 +1,4 @@
3 10 5 16 8 4 2 1
[code]: 0
[time]: 11.0214 ms

View file

@ -0,0 +1,9 @@
BasedOnStyle: Google
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLambdasOnASingleLine: false
AllowShortLoopsOnASingleLine: false

9
kattis/18-2-2025/.clangd Normal file
View file

@ -0,0 +1,9 @@
CompileFlags:
Add:
- -std=c++23
- -Wall
- -Wextra
- -Wpedantic
- -Wshadow
- -DLOCAL
- -Wno-unknown-pragmas

View file

@ -0,0 +1,37 @@
import math
from scipy.optimize import minimize_scalar
def cable_length(x, L, H1, H2, d, h):
# Calculate the height of the cable at point x
y = H1 - (H1 - H2) * (x / L)
# Ensure the rider is at least h + d meters above the ground
if y - d < h:
return float('inf') # Invalid configuration
# Calculate the cable length
length1 = math.sqrt(x**2 + (H1 - y)**2)
length2 = math.sqrt((L - x)**2 + (H2 - y)**2)
return length1 + length2
def find_min_max_length(L, H1, H2, d, h):
# Find the minimum length
res_min = minimize_scalar(lambda x: cable_length(x, L, H1, H2, d, h), bounds=(0, L), method='bounded')
min_length = res_min.fun
# Find the maximum length
res_max = minimize_scalar(lambda x: -cable_length(x, L, H1, H2, d, h), bounds=(0, L), method='bounded')
max_length = -res_max.fun
return min_length, max_length
# Example usage:
L = 1000 # Distance between poles
H1 = 100 # Height of first pole
H2 = 100 # Height of second pole
d = 20 # Distance rider hangs below cable
h = 10 # Minimum height above ground
min_length, max_length = find_min_max_length(L, H1, H2, d, h)
print(f"Minimum length: {min_length:.6f} meters")
print(f"Maximum length: {max_length:.6f} meters")

View file

@ -0,0 +1,6 @@
-std=c++23
-Wall
-Wextra
-Wpedantic
-Wshadow
-DLOCAL

82
kattis/18-2-2025/i.cc Normal file
View file

@ -0,0 +1,82 @@
#include <bits/stdc++.h> // {{{
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
template <typename T>
constexpr T MIN = std::numeric_limits<T>::min();
template <typename T>
constexpr T MAX = std::numeric_limits<T>::max();
template <typename T>
[[nodiscard]] static T sc(auto&& x) {
return static_cast<T>(x);
}
template <typename T>
[[nodiscard]] static T sz(auto&& x) {
return static_cast<T>(x.size());
}
#ifdef LOCAL
#define dbgln(...) prln(...)
#define dbg(...) pr(...)
#endif
using ll = long long;
using ld = long double;
template <typename T>
using vec = std::vector<T>;
template <typename T, size_t N>
using arr = std::array<T, N>;
#define ff first
#define ss second
#define eb emplace_back
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
// }}}
void solve() {
int n;
cin >> n;
vec<ld> a(n);
for (auto& e : a)
cin >> e;
ld ans = 0.0;
ld prefix = 0;
for (int i = 0; i < n; ++i) {
prefix += a[i];
ans = max(ans, prefix / (i + 1));
}
ld suffix = 0;
for (int i = n - 1; i >= 0; --i) {
suffix += a[i];
ans = max(ans, suffix / (n - i));
}
cout << ans << endl;
}
int main() { // {{{
cin.tie(nullptr)->sync_with_stdio(false);
int t = 1;
// cin >> t;
while (t--) {
solve();
}
return 0;
}
// }}}

2
kattis/18-2-2025/i.in Normal file
View file

@ -0,0 +1,2 @@
4
4 4 4 4

4
kattis/18-2-2025/i.out Normal file
View file

@ -0,0 +1,4 @@
4
[code]: 0
[time]: 11.9913 ms

92
kattis/18-2-2025/j.cc Normal file
View file

@ -0,0 +1,92 @@
#include <bits/stdc++.h> // {{{
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
template <typename T>
constexpr T MIN = std::numeric_limits<T>::min();
template <typename T>
constexpr T MAX = std::numeric_limits<T>::max();
template <typename T>
[[nodiscard]] static T sc(auto &&x) {
return static_cast<T>(x);
}
template <typename T>
[[nodiscard]] static T sz(auto &&x) {
return static_cast<T>(x.size());
}
template <typename... Args>
void pr(std::format_string<Args...> fmt, Args &&...args) {
std::print(fmt, std::forward<Args>(args)...);
}
template <typename... Args>
void pr(std::format_string<Args...> fmt) {
std::print(fmt);
}
template <typename... Args>
void prln(std::format_string<Args...> fmt, Args &&...args) {
std::println(fmt, std::forward<Args>(args)...);
}
template <typename... Args>
void prln(std::format_string<Args...> fmt) {
std::println(fmt);
}
void prln() {
std::println();
}
void prln(auto const &t) {
std::println("{}", t);
}
#ifdef LOCAL
#define dbgln(...) prln(...)
#define dbg(...) pr(...)
#endif
using ll = long long;
using ld = long double;
template <typename T>
using vec = std::vector<T>;
template <typename T, size_t N>
using arr = std::array<T, N>;
#define ff first
#define ss second
#define eb emplace_back
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
// }}}
void solve() {
string s;
cin >> s;
int ans = 0;
prln("{}", ans);
}
int main() { // {{{
cin.tie(nullptr)->sync_with_stdio(false);
solve();
return 0;
}
// }}}

1
kattis/18-2-2025/j.in Normal file
View file

@ -0,0 +1 @@
thenumberofgoodstringsis

4
kattis/18-2-2025/j.out Normal file
View file

@ -0,0 +1,4 @@
0
[code]: 0
[time]: 11.1344 ms

17
kattis/18-2-2025/j.py Normal file
View file

@ -0,0 +1,17 @@
s = input()
n = len(s)
last_occurrence = {}
total = 0
for right in range(n):
char = s[right]
left = last_occurrence.get(char, -1) + 1
unique_chars = set()
for l in range(right - 1, left - 1, -1):
if s[l] not in unique_chars:
total += 1
unique_chars.add(s[l])
last_occurrence[char] = right
print(total)

99
kattis/18-2-2025/k.cc Normal file
View file

@ -0,0 +1,99 @@
#include <bits/stdc++.h> // {{{
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
template <typename T>
constexpr T MIN = std::numeric_limits<T>::min();
template <typename T>
constexpr T MAX = std::numeric_limits<T>::max();
template <typename T>
[[nodiscard]] static T sc(auto&& x) {
return static_cast<T>(x);
}
template <typename T>
[[nodiscard]] static T sz(auto&& x) {
return static_cast<T>(x.size());
}
template <typename... Args>
void pr(std::format_string<Args...> fmt, Args&&... args) {
std::print(fmt, std::forward<Args>(args)...);
}
template <typename... Args>
void pr(std::format_string<Args...> fmt) {
std::print(fmt);
}
template <typename... Args>
void prln(std::format_string<Args...> fmt, Args&&... args) {
std::println(fmt, std::forward<Args>(args)...);
}
template <typename... Args>
void prln(std::format_string<Args...> fmt) {
std::println(fmt);
}
void prln() {
std::println();
}
void prln(auto const& t) {
std::println("{}", t);
}
#ifdef LOCAL
#define dbgln(...) prln(...)
#define dbg(...) pr(...)
#endif
using ll = long long;
using ld = long double;
template <typename T>
using vec = std::vector<T>;
template <typename T, size_t N>
using arr = std::array<T, N>;
#define ff first
#define ss second
#define eb emplace_back
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
// }}}
void solve() {
ld w, g, h, r;
cin >> w >> g >> h >> r;
auto dist = [](ld x1, ld y1, ld x2, ld y2) {
return sqrtl((y2 - y1) * (y2 - y1) + (x2 - x1) * (x2 - x1));
};
ld x_star = w * (g - r) / (g + h - 2 * r);
ld min_dist = dist(0, g, x_star, r) + dist(x_star, r, w, h);
printf("%.7LF %.7LF\n", dist(0, g, w, h), min_dist);
}
int main() { // {{{
cin.tie(nullptr)->sync_with_stdio(false);
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
// }}}

3
kattis/18-2-2025/k.in Normal file
View file

@ -0,0 +1,3 @@
2
1000 100 100 20
100 20 30 2

5
kattis/18-2-2025/k.out Normal file
View file

@ -0,0 +1,5 @@
1000.0000000 1012.7191121
100.4987562 110.0727032
[code]: 0
[time]: 11.523 ms

37
kattis/18-2-2025/k.py Normal file
View file

@ -0,0 +1,37 @@
import math
from scipy.optimize import minimize_scalar
def cable_length(x, L, H1, H2, d, h):
# Calculate the height of the cable at point x
y = H1 - (H1 - H2) * (x / L)
# Ensure the rider is at least h + d meters above the ground
if y - d < h:
return float('inf') # Invalid configuration
# Calculate the cable length
length1 = math.sqrt(x**2 + (H1 - y)**2)
length2 = math.sqrt((L - x)**2 + (H2 - y)**2)
return length1 + length2
def find_min_max_length(L, H1, H2, d, h):
# Find the minimum length
res_min = minimize_scalar(lambda x: cable_length(x, L, H1, H2, d, h), bounds=(0, L), method='bounded')
min_length = res_min.fun
# Find the maximum length
res_max = minimize_scalar(lambda x: -cable_length(x, L, H1, H2, d, h), bounds=(0, L), method='bounded')
max_length = -res_max.fun
return min_length, max_length
# Example usage:
L = 1000 # Distance between poles
H1 = 100 # Height of first pole
H2 = 100 # Height of second pole
d = 20 # Distance rider hangs below cable
h = 20 # Minimum height above ground
min_length, max_length = find_min_max_length(L, H1, H2, d, h)
print(f"Minimum length: {min_length:.6f} meters")
print(f"Maximum length: {max_length:.6f} meters")