제출 #1161048

#제출 시각아이디문제언어결과실행 시간메모리
1161048ElayV13Election (BOI18_election)C++20
28 / 100
3095 ms680 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define all(a) a.begin() , a.end()
#define ld long double
#define ff first
#define ss second

const int inf = 1e18;
const int mod = 998244353;
const int MXN = 10005;

int N , q;
string s;

void solve()
{
        cin >> N >> s >> q;
        s = '#' + s;
        while(q--)
        {
                int l , r;
                cin >> l >> r;
                int cnt[2];
                cnt[0] = cnt[1] = 0;
                // cnt[0] -> 'C' // cnt[1] -> 'T'
                string ss = s;
                for(int i = l;i <= r;i++)
                {
                        if(ss[i] == 'T') cnt[1]++;
                        if(ss[i] == 'C') cnt[0]++;
                        if(cnt[1] > cnt[0] && ss[i] != 'C'){
                                ss[i] = 'X';
                                cnt[1]--;
                        }
                }
                cnt[0] = cnt[1] = 0;
                for(int i = r;i >= l;i--)
                {
                        if(ss[i] == 'T') cnt[1]++;
                        if(ss[i] == 'C') cnt[0]++;
                        if(cnt[1] > cnt[0] && ss[i] != 'C'){
                                ss[i] = 'X';
                                cnt[1]--;
                        }
                }
                int res = 0;
                for(int i = 1;i <= N;i++)
                {
                        res += (s[i] != ss[i]);
                }
                cout << res << endl;
        }
}
signed main(){
      ios_base::sync_with_stdio(0);cin.tie(0);
      int T = 1;//cin >> T;
      while(T--) solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...