제출 #1227860

#제출 시각아이디문제언어결과실행 시간메모리
1227860Muhammad_AneeqElection (BOI18_election)C++20
0 / 100
7 ms320 KiB
#include <iostream> #include <vector> using namespace std; inline void solve() { int n; cin>>n; string s; cin>>s; int q; cin>>q; while (q--) { int l,r; cin>>l>>r; l--;r--; vector<pair<int,int>>tl; for (int i=l;i<=r;i++) { int j=i; while (j<=r&&s[i]==s[j]) j++; if (s[i]=='C') tl.push_back({j-i,1}); else tl.push_back({j-i,-1}); i=j-1; } vector<int>ans(tl.size(),0); { int cur=0; for (int i=0;i<tl.size();i++) { if (cur+tl[i].first*tl[i].second>=0) cur=cur+tl[i].first*tl[i].second; else { int f=cur+tl[i].first*tl[i].second; ans[i]=abs(f); cur=0; } } } { int cur=0; for (int i=tl.size()-1;i>=0;i--) { if (cur+tl[i].first*tl[i].second>=0) cur=cur+tl[i].first*tl[i].second; else { int f=cur+tl[i].first*tl[i].second; ans[i]=max(ans[i],abs(f)); cur=0; } } } int tot=0; for (auto i:ans) tot+=i; cout<<tot<<endl; } } int main() { ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int t=1; for (int i=1;i<=t;i++) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...