codeforces rounds

This commit is contained in:
Barrett Ruth 2025-09-17 22:22:41 -04:00
parent 6746faf742
commit 4ec6d74e65
88 changed files with 2039 additions and 13 deletions

93
codeforces/1050/2148a.cc Normal file
View file

@ -0,0 +1,93 @@
#include <bits/stdc++.h> // {{{
#include <version>
#ifdef __cpp_lib_ranges_enumerate
#include <ranges>
namespace rv = std::views;
namespace rs = std::ranges;
#endif
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
using i16 = int16_t;
using u16 = uint16_t;
using i32 = int32_t;
using u32 = uint32_t;
using i64 = int64_t;
using u64 = uint64_t;
using f64 = double;
using f128 = long double;
#if __cplusplus >= 202002L
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());
}
#endif
static void NO() { std::cout << "NO\n"; }
static void YES() { std::cout << "YES\n"; }
template <typename T> using vec = std::vector<T>;
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define ff first
#define ss second
#ifdef LOCAL
#define db(...) std::print(__VA_ARGS__)
#define dbln(...) std::println(__VA_ARGS__)
#else
#define db(...)
#define dbln(...)
#endif
// }}}
void solve() {
u16 n, x;
cin >> x >> n;
if (n & 1) {
cout << x;
} else {
cout << 0;
}
cout << '\n';
}
int main() { // {{{
std::cin.exceptions(std::cin.failbit);
#ifdef LOCAL
std::cerr.rdbuf(std::cout.rdbuf());
std::cout.setf(std::ios::unitbuf);
std::cerr.setf(std::ios::unitbuf);
#else
std::cin.tie(nullptr)->sync_with_stdio(false);
#endif
u32 tc = 1;
std::cin >> tc;
for (u32 t = 0; t < tc; ++t) {
solve();
}
return 0;
}
// }}}

94
codeforces/1050/2148b.cc Normal file
View file

@ -0,0 +1,94 @@
#include <bits/stdc++.h> // {{{
#include <version>
#ifdef __cpp_lib_ranges_enumerate
#include <ranges>
namespace rv = std::views;
namespace rs = std::ranges;
#endif
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
using i16 = int16_t;
using u16 = uint16_t;
using i32 = int32_t;
using u32 = uint32_t;
using i64 = int64_t;
using u64 = uint64_t;
using f64 = double;
using f128 = long double;
#if __cplusplus >= 202002L
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());
}
#endif
static void NO() { std::cout << "NO\n"; }
static void YES() { std::cout << "YES\n"; }
template <typename T> using vec = std::vector<T>;
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define ff first
#define ss second
#ifdef LOCAL
#define db(...) std::print(__VA_ARGS__)
#define dbln(...) std::println(__VA_ARGS__)
#else
#define db(...)
#define dbln(...)
#endif
// }}}
void solve() {
u32 n, m;
u64 x, y;
cin >> n >> m >> x >> y;
vec<u32> horiz(n), vert(m);
for (auto &e : horiz)
cin >> e;
for (auto &e : vert)
cin >> e;
println("{}", n + m);
}
int main() { // {{{
std::cin.exceptions(std::cin.failbit);
#ifdef LOCAL
std::cerr.rdbuf(std::cout.rdbuf());
std::cout.setf(std::ios::unitbuf);
std::cerr.setf(std::ios::unitbuf);
#else
std::cin.tie(nullptr)->sync_with_stdio(false);
#endif
u32 tc = 1;
std::cin >> tc;
for (u32 t = 0; t < tc; ++t) {
solve();
}
return 0;
}
// }}}

109
codeforces/1050/2148c.cc Normal file
View file

@ -0,0 +1,109 @@
#include <bits/stdc++.h> // {{{
#include <version>
#ifdef __cpp_lib_ranges_enumerate
#include <ranges>
namespace rv = std::views;
namespace rs = std::ranges;
#endif
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
using i16 = int16_t;
using u16 = uint16_t;
using i32 = int32_t;
using u32 = uint32_t;
using i64 = int64_t;
using u64 = uint64_t;
using f64 = double;
using f128 = long double;
#if __cplusplus >= 202002L
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());
}
#endif
static void NO() { std::cout << "NO\n"; }
static void YES() { std::cout << "YES\n"; }
template <typename T> using vec = std::vector<T>;
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define ff first
#define ss second
#ifdef LOCAL
#define db(...) std::print(__VA_ARGS__)
#define dbln(...) std::println(__VA_ARGS__)
#else
#define db(...)
#define dbln(...)
#endif
// }}}
void solve() {
u32 n, m;
cin >> n >> m;
u32 a, b;
u16 side = 0;
u32 t = 0;
u32 ans = 0;
for (u32 i = 0; i < n; ++i) {
cin >> a >> b;
// at time a, must be at side b; was on side side @ time t
u32 diff = a - t;
ans += diff;
if (diff & 1 && b == side || !(diff & 1) && b != side) {
--ans;
}
t = a;
side = b;
}
ans += m - t;
println("{}", ans);
}
int main() { // {{{
std::cin.exceptions(std::cin.failbit);
#ifdef LOCAL
std::cerr.rdbuf(std::cout.rdbuf());
std::cout.setf(std::ios::unitbuf);
std::cerr.setf(std::ios::unitbuf);
#else
std::cin.tie(nullptr)->sync_with_stdio(false);
#endif
u32 tc = 1;
std::cin >> tc;
for (u32 t = 0; t < tc; ++t) {
solve();
}
return 0;
}
// }}}

109
codeforces/1050/2148d.cc Normal file
View file

@ -0,0 +1,109 @@
#include <bits/stdc++.h> // {{{
#include <version>
#ifdef __cpp_lib_ranges_enumerate
#include <ranges>
namespace rv = std::views;
namespace rs = std::ranges;
#endif
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
using i16 = int16_t;
using u16 = uint16_t;
using i32 = int32_t;
using u32 = uint32_t;
using i64 = int64_t;
using u64 = uint64_t;
using f64 = double;
using f128 = long double;
#if __cplusplus >= 202002L
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());
}
#endif
static void NO() { std::cout << "NO\n"; }
static void YES() { std::cout << "YES\n"; }
template <typename T> using vec = std::vector<T>;
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define ff first
#define ss second
#ifdef LOCAL
#define db(...) std::print(__VA_ARGS__)
#define dbln(...) std::println(__VA_ARGS__)
#else
#define db(...)
#define dbln(...)
#endif
// }}}
void solve() {
u32 n, a;
cin >> n;
vec<u32> odd;
u64 even_total = 0, ans = 0;
for (u32 i = 0; i < n; ++i) {
cin >> a;
if (a & 1) {
odd.push_back(a);
} else {
even_total += a;
}
}
sort(rall(odd));
for (u32 i = 0; i < (odd.size() + 1) / 2; ++i) {
ans += odd[i];
}
if (ans > 0) {
ans += even_total;
}
println("{}", ans);
}
int main() { // {{{
std::cin.exceptions(std::cin.failbit);
#ifdef LOCAL
std::cerr.rdbuf(std::cout.rdbuf());
std::cout.setf(std::ios::unitbuf);
std::cerr.setf(std::ios::unitbuf);
#else
std::cin.tie(nullptr)->sync_with_stdio(false);
#endif
u32 tc = 1;
std::cin >> tc;
for (u32 t = 0; t < tc; ++t) {
solve();
}
return 0;
}
// }}}

112
codeforces/1050/2148e.cc Normal file
View file

@ -0,0 +1,112 @@
#include <bits/stdc++.h> // {{{
#include <version>
#ifdef __cpp_lib_ranges_enumerate
#include <ranges>
namespace rv = std::views;
namespace rs = std::ranges;
#endif
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
using i16 = int16_t;
using u16 = uint16_t;
using i32 = int32_t;
using u32 = uint32_t;
using i64 = int64_t;
using u64 = uint64_t;
using f64 = double;
using f128 = long double;
#if __cplusplus >= 202002L
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());
}
#endif
static void NO() { std::cout << "NO\n"; }
static void YES() { std::cout << "YES\n"; }
template <typename T> using vec = std::vector<T>;
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define ff first
#define ss second
#ifdef LOCAL
#define db(...) std::print(__VA_ARGS__)
#define dbln(...) std::println(__VA_ARGS__)
#else
#define db(...)
#define dbln(...)
#endif
// }}}
void solve() {
u32 n, k;
cin >> n >> k;
vec<u32> a(n);
vec<u32> F(n + 1, 0);
for (u32 i = 0; i < n; ++i) {
cin >> a[i];
++F[a[i]];
}
for (auto &f : F) {
if (f % k) {
println("0");
return;
}
}
u64 ans = 0;
map<u32, u32> f;
for (u32 l = 0, r = 0; r < n; ++r) {
++f[a[r]];
while (f[a[r]] * k > F[a[r]]) {
--f[a[l]];
++l;
}
ans += r - l + 1;
}
println("{}", ans);
}
int main() { // {{{
std::cin.exceptions(std::cin.failbit);
#ifdef LOCAL
std::cerr.rdbuf(std::cout.rdbuf());
std::cout.setf(std::ios::unitbuf);
std::cerr.setf(std::ios::unitbuf);
#else
std::cin.tie(nullptr)->sync_with_stdio(false);
#endif
u32 tc = 1;
std::cin >> tc;
for (u32 t = 0; t < tc; ++t) {
solve();
}
return 0;
}
// }}}

View file

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

View file

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

View file

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

View file

@ -0,0 +1,9 @@
0
2
0
4
[code]: 0
[time]: 2.70 ms
[debug]: false
[ok]: true

View file

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

View file

@ -0,0 +1,7 @@
2
1 1 2 2
1
1
2 1 100000 100000
42 58
32

View file

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

View file

@ -0,0 +1,7 @@
2
1 1 2 2
1
1
2 1 100000 100000
42 58
32

View file

@ -0,0 +1,7 @@
2
3
[code]: 0
[time]: 2.45 ms
[debug]: false
[ok]: true

View file

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

View file

@ -0,0 +1,12 @@
3
2 4
2 1
4 0
2 7
1 1
4 0
4 9
1 0
2 0
6 1
9 0

View file

@ -0,0 +1,3 @@
2
7
6

View file

@ -0,0 +1,12 @@
3
2 4
2 1
4 0
2 7
1 1
4 0
4 9
1 0
2 0
6 1
9 0

View file

@ -0,0 +1,8 @@
2
7
6
[code]: 0
[time]: 2.88 ms
[debug]: false
[ok]: true

View file

@ -0,0 +1,3 @@
2
7
6

View file

@ -0,0 +1,7 @@
3
3
2 4 6
4
4 2 1 6
4
1000000000 999999999 1000000000 999999999

View file

@ -0,0 +1,3 @@
0
13
2999999999

View file

@ -0,0 +1,7 @@
3
3
2 4 6
4
4 2 1 6
4
1000000000 999999999 1000000000 999999999

View file

@ -0,0 +1,8 @@
0
13
2999999999
[code]: 0
[time]: 2.53 ms
[debug]: false
[ok]: true

View file

@ -0,0 +1,3 @@
0
13
2999999999

View file

@ -0,0 +1,9 @@
4
3 2
1 1 1
4 2
1 2 1 2
8 2
3 3 3 3 2 2 2 2
6 3
1 1 1 1 1 1

View file

@ -0,0 +1,4 @@
0
7
18
11

View file

@ -0,0 +1,9 @@
4
3 2
1 1 1
4 2
1 2 1 2
8 2
3 3 3 3 2 2 2 2
6 3
1 1 1 1 1 1

View file

@ -0,0 +1,9 @@
0
7
18
11
[code]: 0
[time]: 2.91 ms
[debug]: false
[ok]: true

View file

@ -0,0 +1,4 @@
0
7
18
11