Submission #96555

#TimeUsernameProblemLanguageResultExecution timeMemory
96555josiftepeElection (BOI18_election)C++14
28 / 100
3030 ms1956 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 5e5 + 10; int n; string s; bool visited[maxn]; int solve(int S, int E){ int balance = 0; int ret = 0; memset(visited, false, sizeof visited); for(int i = S; i <= E; i ++){ if(s[i] == 'C'){ balance ++; } else{ balance --; } if(balance < 0){ balance = 0; visited[i] = true; ret ++; } } balance = 0; for(int i = E; i >= S; i --){ if(s[i] == 'C'){ balance ++; } else if(!visited[i] and s[i] == 'T'){ balance --; } if(balance < 0){ balance = 0; ret ++; } } return ret; } int main() { ios_base::sync_with_stdio(false); cin >> n >> s; int q; cin >> q; for(int i = 0; i < q; i ++){ int a, b; cin >> a >> b; a --; b --; cout << solve(a, b) << endl; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...