Submission #1264412

#TimeUsernameProblemLanguageResultExecution timeMemory
1264412altern23Election (BOI18_election)C++20
28 / 100
9 ms1284 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<ll, ll> #define fi first #define sec second #define ld long double const int MAXN = 2e3; const ll INF = 4e18; const int MOD = 1e9 + 7; ll ps[MAXN + 5][2]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tc = 1; // cin >> tc; for(;tc--;){ ll N; cin >> N; string S; cin >> S; S = '%' + S; for(int i = 1; i <= N; i++){ ps[i][0] = ps[i - 1][0] + (S[i] == 'C'); ps[i][1] = ps[i - 1][1] + (S[i] == 'T'); } ll Q; cin >> Q; for(int i = 1; i <= Q; i++){ ll l, r; cin >> l >> r; ll lf = 1, rg = ps[r][1] - ps[l - 1][1], ans = 0; for(;lf <= rg;){ ll mid = (lf + rg) / 2; ll cnt = 0; for(int j = l; j <= r; j++){ if(S[j] == 'T' && ps[j][0] - ps[l - 1][0] - (cnt + 1) >= 0 && ps[r][0] - ps[j - 1][0] - (mid - cnt) >= 0){ cnt++; } } if(cnt >= mid){ ans = mid; lf = mid + 1; } else rg = mid - 1; } cout << r - l + 1 - (ps[r][0] - ps[l - 1][0] + ans) << "\n"; } } } /* */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...