Submission #1232829

#TimeUsernameProblemLanguageResultExecution timeMemory
1232829just_crowElection (BOI18_election)C++20
0 / 100
7 ms320 KiB
#include <bits/stdc++.h> using namespace std; vector<int> solutions; int main() { int n; cin >> n; vector<char> el(n); for (int i = 0; i < n; ++i) { cin >> el[i]; } int q; cin >> q; for (int i = 0; i < q; ++i) { int a, b; cin >> a >> b; vector<int> removeclump, removeclump1; int currcs = 0; int currts = 0; bool cstate = true; for (int i = a - 1; i < b; ++i) { if (el[i] == 'C' and !cstate) { removeclump.push_back(currts - currcs + min((removeclump.size() > 0 ? removeclump.back() : 0), 0)); currcs = 1; currts = 0; cstate = true; } else if (el[i] == 'C') { ++currcs; } else if (el[i] == 'T') { if (cstate) { cstate = false; } ++currts; } } if (!cstate) { removeclump.push_back(currts - currcs + min((removeclump.size() > 0 ? removeclump.back() : 0), 0)); } // FROM BACK currcs = 0; currts = 0; cstate = true; for (int i = b - 1; i >= a - 1; --i) { if (el[i] == 'C' and !cstate) { removeclump1.push_back(currts - currcs + min((removeclump1.size() > 0 ? removeclump1.back() : 0), 0)); currcs = 1; currts = 0; cstate = true; } else if (el[i] == 'C') { ++currcs; } else if (el[i] == 'T') { if (cstate) { cstate = false; } ++currts; } } if (!cstate) { removeclump1.push_back(currts - currcs + min((removeclump1.size() > 0 ? removeclump1.back() : 0), 0)); } // END BACK int sum = 0; int cs = removeclump.size(); for (int i = 0; i < cs; ++i) { sum += max(max(0, removeclump[i]), max(0, removeclump1[cs - i - 1])); } solutions.push_back(sum); } for (int i: solutions) { cout << i << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...