# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
574521 | FatihSolak | Election (BOI18_election) | C++17 | 2 ms | 340 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define FOR(i, x, y) for (int i = x; i < y; i++)
typedef long long ll;
using namespace std;
struct Node {
int l_min, r_min, tot, ans;
Node operator+(Node b) {
Node ret;
ret.l_min = max(l_min, b.l_min - tot);
ret.r_min = max(r_min - b.tot, b.r_min);
ret.tot = tot + b.tot;
ret.ans = max(max(l_min + b.ans,ans + b.r_min),l_min + b.r_min);
return ret;
}
};
Node segtree[2000001];
char s[500001];
int n;
void build(int node = 1, int l = 1, int r = n) {
if (l == r) {
if (s[l] == 'T') segtree[node] = {1, 1, -1, 1};
else segtree[node] = {0, 0, 1, 0};
} else {
int mid = (l + r) / 2;
build(node * 2, l, mid);
build(node * 2 + 1, mid + 1, r);
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |