feat(cses): a few problems
This commit is contained in:
parent
3985e732d4
commit
4f0c2d75c5
65 changed files with 1197 additions and 35 deletions
|
|
@ -92,18 +92,7 @@ void NO() {
|
|||
static constexpr int MOD = 1e9 + 7;
|
||||
|
||||
void solve() {
|
||||
int n;
|
||||
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);
|
||||
println("HI");
|
||||
}
|
||||
|
||||
int main() {
|
||||
|
|
|
|||
|
|
@ -1,24 +1,11 @@
|
|||
hi
|
||||
HI
|
||||
HI
|
||||
HI
|
||||
HI
|
||||
HI
|
||||
HI
|
||||
HI
|
||||
HI
|
||||
|
||||
4
|
||||
hi
|
||||
|
||||
1
|
||||
hi
|
||||
|
||||
1
|
||||
hi
|
||||
|
||||
2
|
||||
hi
|
||||
|
||||
4
|
||||
hi
|
||||
|
||||
6
|
||||
hi
|
||||
|
||||
4
|
||||
hi
|
||||
|
||||
7
|
||||
[code]: 0
|
||||
[time]: 4.7996 ms
|
||||
9
cses/increasing-array/.clang-format
Normal file
9
cses/increasing-array/.clang-format
Normal 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/increasing-array/.clangd
Normal file
8
cses/increasing-array/.clangd
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
CompileFlags:
|
||||
Add:
|
||||
- -Wall
|
||||
- -Wextra
|
||||
- -Wpedantic
|
||||
- -Wshadow
|
||||
- -DLOCAL
|
||||
- -Wno-unknown-pragmas
|
||||
5
cses/increasing-array/compile_flags.txt
Normal file
5
cses/increasing-array/compile_flags.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
-Wshadow
|
||||
-DLOCAL
|
||||
65
cses/increasing-array/solution.cc
Normal file
65
cses/increasing-array/solution.cc
Normal 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;
|
||||
}
|
||||
// }}}
|
||||
2
cses/increasing-array/solution.in
Normal file
2
cses/increasing-array/solution.in
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
10
|
||||
1000000000 1 1 1 1 1 1 1 1 1
|
||||
4
cses/increasing-array/solution.out
Normal file
4
cses/increasing-array/solution.out
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
8999999991
|
||||
|
||||
[code]: 0
|
||||
[time]: 4.4868 ms
|
||||
9
cses/missing-number/.clang-format
Normal file
9
cses/missing-number/.clang-format
Normal 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/missing-number/.clangd
Normal file
8
cses/missing-number/.clangd
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
CompileFlags:
|
||||
Add:
|
||||
- -Wall
|
||||
- -Wextra
|
||||
- -Wpedantic
|
||||
- -Wshadow
|
||||
- -DLOCAL
|
||||
- -Wno-unknown-pragmas
|
||||
6
cses/missing-number/compile_flags.txt
Normal file
6
cses/missing-number/compile_flags.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
-Wshadow
|
||||
-DLOCAL
|
||||
-std=c++20
|
||||
65
cses/missing-number/solution.cc
Normal file
65
cses/missing-number/solution.cc
Normal 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;
|
||||
}
|
||||
// }}}
|
||||
2
cses/missing-number/solution.in
Normal file
2
cses/missing-number/solution.in
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
5
|
||||
2 3 1 5
|
||||
4
cses/missing-number/solution.out
Normal file
4
cses/missing-number/solution.out
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
4
|
||||
|
||||
[code]: 0
|
||||
[time]: 3.88908 ms
|
||||
9
cses/number-spiral/.clang-format
Normal file
9
cses/number-spiral/.clang-format
Normal 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/number-spiral/.clangd
Normal file
8
cses/number-spiral/.clangd
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
CompileFlags:
|
||||
Add:
|
||||
- -Wall
|
||||
- -Wextra
|
||||
- -Wpedantic
|
||||
- -Wshadow
|
||||
- -DLOCAL
|
||||
- -Wno-unknown-pragmas
|
||||
5
cses/number-spiral/compile_flags.txt
Normal file
5
cses/number-spiral/compile_flags.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
-Wshadow
|
||||
-DLOCAL
|
||||
62
cses/number-spiral/solution.cc
Normal file
62
cses/number-spiral/solution.cc
Normal 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;
|
||||
}
|
||||
// }}}
|
||||
5
cses/number-spiral/solution.in
Normal file
5
cses/number-spiral/solution.in
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
4
|
||||
2 3
|
||||
1 1
|
||||
4 2
|
||||
2 4
|
||||
7
cses/number-spiral/solution.out
Normal file
7
cses/number-spiral/solution.out
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
8
|
||||
1
|
||||
15
|
||||
11
|
||||
|
||||
[code]: 0
|
||||
[time]: 4.26793 ms
|
||||
9
cses/permutations/.clang-format
Normal file
9
cses/permutations/.clang-format
Normal 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/permutations/.clangd
Normal file
8
cses/permutations/.clangd
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
CompileFlags:
|
||||
Add:
|
||||
- -Wall
|
||||
- -Wextra
|
||||
- -Wpedantic
|
||||
- -Wshadow
|
||||
- -DLOCAL
|
||||
- -Wno-unknown-pragmas
|
||||
5
cses/permutations/compile_flags.txt
Normal file
5
cses/permutations/compile_flags.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
-Wshadow
|
||||
-DLOCAL
|
||||
76
cses/permutations/solution.cc
Normal file
76
cses/permutations/solution.cc
Normal 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;
|
||||
}
|
||||
// }}}
|
||||
1
cses/permutations/solution.in
Normal file
1
cses/permutations/solution.in
Normal file
|
|
@ -0,0 +1 @@
|
|||
1
|
||||
4
cses/permutations/solution.out
Normal file
4
cses/permutations/solution.out
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
1
|
||||
|
||||
[code]: 0
|
||||
[time]: 4.06551 ms
|
||||
9
cses/repetitions/.clang-format
Normal file
9
cses/repetitions/.clang-format
Normal 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
8
cses/repetitions/.clangd
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
CompileFlags:
|
||||
Add:
|
||||
- -Wall
|
||||
- -Wextra
|
||||
- -Wpedantic
|
||||
- -Wshadow
|
||||
- -DLOCAL
|
||||
- -Wno-unknown-pragmas
|
||||
5
cses/repetitions/compile_flags.txt
Normal file
5
cses/repetitions/compile_flags.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
-Wshadow
|
||||
-DLOCAL
|
||||
60
cses/repetitions/solution.cc
Normal file
60
cses/repetitions/solution.cc
Normal 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;
|
||||
}
|
||||
// }}}
|
||||
1
cses/repetitions/solution.in
Normal file
1
cses/repetitions/solution.in
Normal file
|
|
@ -0,0 +1 @@
|
|||
ABCDEF
|
||||
4
cses/repetitions/solution.out
Normal file
4
cses/repetitions/solution.out
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
1
|
||||
|
||||
[code]: 0
|
||||
[time]: 4.20523 ms
|
||||
9
cses/two-knights/.clang-format
Normal file
9
cses/two-knights/.clang-format
Normal 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
8
cses/two-knights/.clangd
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
CompileFlags:
|
||||
Add:
|
||||
- -Wall
|
||||
- -Wextra
|
||||
- -Wpedantic
|
||||
- -Wshadow
|
||||
- -DLOCAL
|
||||
- -Wno-unknown-pragmas
|
||||
5
cses/two-knights/compile_flags.txt
Normal file
5
cses/two-knights/compile_flags.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
-Wshadow
|
||||
-DLOCAL
|
||||
58
cses/two-knights/solution.cc
Normal file
58
cses/two-knights/solution.cc
Normal 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;
|
||||
}
|
||||
// }}}
|
||||
1
cses/two-knights/solution.in
Normal file
1
cses/two-knights/solution.in
Normal file
|
|
@ -0,0 +1 @@
|
|||
8
|
||||
11
cses/two-knights/solution.out
Normal file
11
cses/two-knights/solution.out
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
0
|
||||
6
|
||||
28
|
||||
96
|
||||
252
|
||||
550
|
||||
1056
|
||||
1848
|
||||
|
||||
[code]: 0
|
||||
[time]: 4.07505 ms
|
||||
9
cses/two-sets/.clang-format
Normal file
9
cses/two-sets/.clang-format
Normal 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
8
cses/two-sets/.clangd
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
CompileFlags:
|
||||
Add:
|
||||
- -Wall
|
||||
- -Wextra
|
||||
- -Wpedantic
|
||||
- -Wshadow
|
||||
- -DLOCAL
|
||||
- -Wno-unknown-pragmas
|
||||
6
cses/two-sets/compile_flags.txt
Normal file
6
cses/two-sets/compile_flags.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
-Wshadow
|
||||
-DLOCAL
|
||||
-std=c++20
|
||||
89
cses/two-sets/solution.cc
Normal file
89
cses/two-sets/solution.cc
Normal 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;
|
||||
}
|
||||
// }}}
|
||||
1
cses/two-sets/solution.in
Normal file
1
cses/two-sets/solution.in
Normal file
|
|
@ -0,0 +1 @@
|
|||
7
|
||||
8
cses/two-sets/solution.out
Normal file
8
cses/two-sets/solution.out
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
3
|
||||
7 6 1
|
||||
4
|
||||
5 4 3 2
|
||||
|
||||
|
||||
[code]: 0
|
||||
[time]: 11.0717 ms
|
||||
9
cses/weird-algorithm/.clang-format
Normal file
9
cses/weird-algorithm/.clang-format
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
BasedOnStyle: Google
|
||||
AllowShortBlocksOnASingleLine: false
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortCompoundRequirementOnASingleLine: false
|
||||
AllowShortEnumsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: false
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLambdasOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
9
cses/weird-algorithm/.clangd
Normal file
9
cses/weird-algorithm/.clangd
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
CompileFlags:
|
||||
Add:
|
||||
- -std=c++23
|
||||
- -Wall
|
||||
- -Wextra
|
||||
- -Wpedantic
|
||||
- -Wshadow
|
||||
- -DLOCAL
|
||||
- -Wno-unknown-pragmas
|
||||
6
cses/weird-algorithm/compile_flags.txt
Normal file
6
cses/weird-algorithm/compile_flags.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
-std=c++23
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
-Wshadow
|
||||
-DLOCAL
|
||||
64
cses/weird-algorithm/solution.cc
Normal file
64
cses/weird-algorithm/solution.cc
Normal 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;
|
||||
}
|
||||
// }}}
|
||||
1
cses/weird-algorithm/solution.in
Normal file
1
cses/weird-algorithm/solution.in
Normal file
|
|
@ -0,0 +1 @@
|
|||
3
|
||||
4
cses/weird-algorithm/solution.out
Normal file
4
cses/weird-algorithm/solution.out
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
3 10 5 16 8 4 2 1
|
||||
|
||||
[code]: 0
|
||||
[time]: 11.0214 ms
|
||||
9
kattis/18-2-2025/.clang-format
Normal file
9
kattis/18-2-2025/.clang-format
Normal 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
9
kattis/18-2-2025/.clangd
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
CompileFlags:
|
||||
Add:
|
||||
- -std=c++23
|
||||
- -Wall
|
||||
- -Wextra
|
||||
- -Wpedantic
|
||||
- -Wshadow
|
||||
- -DLOCAL
|
||||
- -Wno-unknown-pragmas
|
||||
37
kattis/18-2-2025/.null-ls_478791_k.py
Normal file
37
kattis/18-2-2025/.null-ls_478791_k.py
Normal 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")
|
||||
6
kattis/18-2-2025/compile_flags.txt
Normal file
6
kattis/18-2-2025/compile_flags.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
-std=c++23
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
-Wshadow
|
||||
-DLOCAL
|
||||
82
kattis/18-2-2025/i.cc
Normal file
82
kattis/18-2-2025/i.cc
Normal 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
2
kattis/18-2-2025/i.in
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
4
|
||||
4 4 4 4
|
||||
4
kattis/18-2-2025/i.out
Normal file
4
kattis/18-2-2025/i.out
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
4
|
||||
|
||||
[code]: 0
|
||||
[time]: 11.9913 ms
|
||||
92
kattis/18-2-2025/j.cc
Normal file
92
kattis/18-2-2025/j.cc
Normal 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
1
kattis/18-2-2025/j.in
Normal file
|
|
@ -0,0 +1 @@
|
|||
thenumberofgoodstringsis
|
||||
4
kattis/18-2-2025/j.out
Normal file
4
kattis/18-2-2025/j.out
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
0
|
||||
|
||||
[code]: 0
|
||||
[time]: 11.1344 ms
|
||||
17
kattis/18-2-2025/j.py
Normal file
17
kattis/18-2-2025/j.py
Normal 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
99
kattis/18-2-2025/k.cc
Normal 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
3
kattis/18-2-2025/k.in
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
2
|
||||
1000 100 100 20
|
||||
100 20 30 2
|
||||
5
kattis/18-2-2025/k.out
Normal file
5
kattis/18-2-2025/k.out
Normal 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
37
kattis/18-2-2025/k.py
Normal 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")
|
||||
Loading…
Add table
Add a link
Reference in a new issue