제출 #1100012

#제출 시각아이디문제언어결과실행 시간메모리
1100012vjudge1Election (BOI18_election)C++14
28 / 100
3063 ms2096 KiB
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
#define fi first
#define se second
 
using namespace std;
 
const int maxn = 7e4 + 7;
 
int n , a[maxn];
 
void query(int l , int r)
{
    vector <int> p(maxn);
    for(int i = 1; i <= n; i++) p[i] = a[i];
 
    int sum = 0;
 
    for(int i = l; i <= r; i++)
    {
        sum += p[i];
 
        if(sum < 0)
        {
            p[i] = 0;
            sum += 1;
        }
    }
 
    sum = 0;
 
    for(int i = r; i >= l; i--)
    {
        sum += p[i];
 
        if(sum < 0)
        {
            p[i] = 0;
            sum += 1;
        }
    }
 
    int ans = 0;
 
    for(int i = l; i <= r; i++)
    {
        ans += (a[i] != p[i]);
    }
    cout << ans << '\n';
}
 
void solve()
{
    cin >> n;
    string s; cin >> s;
    s = ' ' + s;
 
    for(int i = 1; i <= n; i++)
    {
        if(s[i] == 'C') a[i] = 1;
        else a[i] = -1;
    }
 
    int q; cin >> q;
 
    while(q--)
    {
        int l , r;
        cin >> l >> r;
        query(l , r);
    }
}
 
 
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    solve();
    return 0;
}
 
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...