Submission #631862

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
6318622022-08-19 02:40:19czhang2718Election (BOI18_election)C++17
100 / 100
460 ms28028 KiB
#include "bits/stdc++.h"
using namespace std;
const int N=5e5;
int n, q;
string s;
struct Node{
int pre, suf, sum, ans;
Node operator+(Node b){
Node ret;
ret.pre=max(pre, sum+b.pre);
ret.suf=max(b.suf, b.sum+suf);
ret.sum=sum+b.sum;
ret.ans=max({ans+b.sum, b.ans+sum, pre+b.suf});
return ret;
}
} seg[4*N];
Node qry(int l, int r, int x=0, int lx=0, int rx=n){
if(lx>=l && rx<=r) return seg[x];
if(lx>=r || rx<=l) return {0, 0, 0, 0};
int m=(lx+rx)/2;
return qry(l, r, 2*x+1, lx, m)+qry(l, r, 2*x+2, m, rx);
}
void build(int x=0, int lx=0, int rx=n){
if(rx-lx==1){
if(s[lx]=='C') seg[x]={0, 0, -1, 0};
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...