feat: usaco

This commit is contained in:
Barrett Ruth 2025-04-26 14:16:04 -04:00
parent 7795f9e52f
commit bf585a88f9
26 changed files with 770 additions and 84 deletions

View file

@ -76,13 +76,9 @@ void solve() {
a[0] = min(a[0], x - a[0]);
for (int i = 1; i < n; ++i) {
if (a[i] >= a[i - 1] && x - a[i] >= a[i - 1]) {
if (x - a[i] >= a[i - 1]) {
a[i] = min(a[i], x - a[i]);
} else if (a[i] >= a[i - 1]) {
;
} else if (x - a[i] >= a[i - 1]) {
a[i] = x - a[i];
} else {
} else if (a[i] < a[i - 1]) {
prln("NO");
return;
}

93
codeforces/1020/f.cc Normal file
View file

@ -0,0 +1,93 @@
#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;
using i32 = int32_t;
using u32 = uint32_t;
using i64 = int64_t;
using u64 = uint64_t;
using d64 = double;
using d128 = long double;
template <typename T>
using vec = std::vector<T>;
template <typename T, size_t N>
using arr = std::array<T, N>;
template <typename T1, typename T2>
using pai = std::pair<T1, T2>;
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());
}
static void NO() {
std::cout << "NO\n";
}
static void YES() {
std::cout << "YES\n";
}
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#ifdef LOCAL
#define db(...) std::print(__VA_ARGS__)
#define dbln(...) std::println(__VA_ARGS__)
#else
#define db(...)
#define dbln(...)
#endif
// }}}
void solve() {
u32 n;
cin >> n;
string s;
cin >> s;
// NOTE: thought could loop thru the entire thing
// knew memory was O(n^2), but didn't actually say:
// ok what do i want to do - loop thru. this is impractical
string prev(n, '1');
// union_find<u64> uf;
for (u32 i = 0; i < n; ++i) {
if (i)
s[i] = ('0' + 1 - (s[i] - '0'));
s[i] = ('0' + 1 - (s[i] - '0'));
cout << "i: " << i << endl;
cout << s << endl;
}
}
int main() { // {{{
cin.tie(nullptr)->sync_with_stdio(false);
cin.exceptions(cin.failbit);
int tc = 1;
cin >> tc;
for (int t = 0; t < tc; ++t) {
solve();
}
return 0;
}
// }}}

13
codeforces/1020/io/f.in Normal file
View file

@ -0,0 +1,13 @@
6
3
000
4
0010
7
1011001
4
0001
2
11
1
0

24
codeforces/1020/io/f.out Normal file
View file

@ -0,0 +1,24 @@
100
010
001
1010
0110
0000
0011
0011001
1111001
1001001
1010001
1011101
1011011
1011000
1001
0101
0011
0000
01
10
1
[code]: 0
[time]: 4.11367 ms