bool f = true; int l = 0, r = 0; for (int i = 1; i <= n; i++) { if (s[i] == s[i - 1] && s[i] != 'F') { l++, r++; } if (s[i] != 'F') f = false; else r++; }
if (f) r--; int cnt = 2; if (s[1] == 'F' || s[n] == 'F') cnt = 1;
for (int i = 1; i <= n; ) { while (s[i] == 'F' && i <= n) { i++; } int j = i + 1; while (s[j] == 'F' && j <= n) { j++; } int len = j - i - 1;
if (s[i] == s[j]) { if (len % 2 == 0 && len) { l++; } if (len) r++; } else { if (j <= n && len & 1) { l++; } } i = j; }
std::vector<int> ans; for (int i = l; i <= r; i += cnt) { ans.emplace_back(i); }
std::cout << ans.size() << "\n"; for (int i : ans) { std::cout << i << "\n"; }
signedmain(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int n, len; std::cin >> n >> len;
std::vector<std::array<int, 2>> a(n); for (int i = 0, x, l; i < n; i++) { std::cin >> a[i][0] >> a[i][1]; }
int l = 0, r = 2E9; while (l < r) { int mid = l + r >> 1; auto check = [&](int x) { std::vector<std::array<int, 2>> seg; for (int i = 0; i < n; i++) { if (x >= a[i][1]) { seg.push_back({a[i][0] - (x - a[i][1]), a[i][0] + (x - a[i][1])}); } } std::sort(seg.begin(), seg.end()); if (seg[0][0] > 1 || !seg.size()) { returnfalse; } int right = seg[0][1]; for (int i = 1; i < seg.size(); i++) { if (right + 1 < seg[i][0]) { returnfalse; } right = std::max(right, seg[i][1]); } return right >= len; }; if (!check(mid)) { l = mid + 1; } else { r = mid; } } std::cout << l << "\n"; return0; }
signedmain(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int n; std::cin >> n;
bool f = false; int sum = 0, ans = -1; for (int i = 0; n > 0; i++, sum++) { if ((n - 1) % 3 == 0 && !f) { ans = sum + 1; f = true; } int x = (n + 2) / 3; n -= x; } std::cout << sum << " " << ans << "\n";
constexpr i64 P = 998244353; template <classT> constexpr T qpow(T a, T b, T p){ T res = 1; for (; b; b /= 2) { if (b % 2) { res = res * a % p; } a = a * a % p; } return res; }
template <classT> constexpr T inv(T a, T b){ returnqpow(a, P, P - 2); }
i64 res = a, x = a; for (int i = 2; i * i <= x; i++) { // 分解质因数 if (x % i == 0) { while (x % i == 0) { x /= i; } res = res / i * (i - 1); } } if (x > 1) res = res / x * (x - 1);
std::sort(p.begin(), p.end(), [&](int i, int j) { return b[i] < b[j]; }); std::vector<int> g[10]; for (int i = 0; i < n; i++) { g[a[p[i]]].push_back(b[p[i]]); }
i64 ans = 0; int avg = n / 10; for (int i = 0; i < 10; i++) { int m = g[i].size(); if (m <= avg) continue ; for (int j = 0; j < m - avg; j++) { ans += g[i][j]; } } std::cout << ans << "\n";
std::vector<int> A(n), B(n), C(n); for (int i = 0; i < n; i++) { std::cin >> A[i]; } for (int i = 0; i < n; i++) { std::cin >> B[i]; } for (int i = 0; i < n; i++) { std::cin >> C[i]; }
auto get = [&](auto A, auto B, auto C) -> int { std::vector<i64> c(n + 1); for (int i = 0; i < n; i++) { c[i] = A[i] - B[i] - C[i]; } std::sort(c.begin(), c.end(), std::greater()); for (int i = 0; i < n; i++) { c[i + 1] += c[i]; if (c[i + 1] <= 0) return i; } return n; };
int res = std::max({get(A, B, C), get(B, A, C), get(C, A, B)});
constexprint P = 1E9 + 7; template <typename T> T qpow(T a, T b){ T res = 1; for (; b; b >>= 1) { if (b & 1) { res = (i64)res * a % P; } a = (i64)a * a % P; } return res % P; }
template <typename T> T inv(T a){ returnqpow(a, P - 2); }
constexprint P = 998244353; template <typename T> T power(T a, T b){ T res = 1; for (; b; b >>= 1) { if (b & 1) { res = res * a % P; } a = a * a % P; } return res % P; }
template <typename T> T inv(T a){ returnpower(a, 1LL * P - 2); }
std::array<std::vector<int>, 26> a {}; for (int i = 0; i < n; i++) { if (!a[s[i] - 'a'].size()) a[s[i] - 'a'].push_back(0); a[s[i] - 'a'].push_back(i + 1); }
i64 res = 0; for (int i = 0; i < 26; i++) { if (a[i].size()) { a[i].push_back(n + 1); int m = a[i].size(); for (int j = 1; j + 1 < m; j++) { int l = a[i][j] - a[i][j - 1], r = a[i][j + 1] - a[i][j]; res += 1LL * l * r; } } } std::cout << res << "\n";