64372023-11-29 12:15:14BenedekMartonGyros (30)cpp14Accepted 30/303ms4020 KiB
#include <iostream>

using namespace std;

int main()
{
    int t;
    cin >> t;
    int n, C, B, c, b, v, elg, x;
    char ren[100001];
    for(int i=0; i<t; i++)
    {
        cin >> n >> C >> B;
        cin.get();
        cin.getline(ren, n+1);
        c=0; b=0; v=0;
        for(int i=0; i<n; i++)
        {
            if(ren[i]=='C')
            {
                c++;
            }
            else if(ren[i]=='B')
            {
                b++;
            }
            else
            {
                v++;
            }
        }
        elg=0;
        if(B%2==C%2)
        {
            if(B%2==v%2)
            {
                x=min(v, min(B, C));
                B=B-x;
                C=C-x;
                v=v-x;
                elg=elg+x;
            }
            else
            {
                x=min(v-1, min(B, C));
                B=B-x;
                C=C-x;
                v=v-x;
                elg=elg+x;
            }
        }
        else
        {
            x=min(v, min(B, C));
            B=B-x;
            C=C-x;
            v=v-x;
            elg=elg+x;
        }
        x=min(B/2, b);
        elg=elg+x;
        B=B-2*x;
        b=b-x;
        x=min(C/2, c);
        elg=elg+x;
        C=C-2*x;
        c=c-x;
        if(C>=1 and B>=1 and v>=1)
        {
            cout << elg+1 << endl;
        }
        else
        {
            cout << elg << endl;
        }
    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base30/30
1Accepted0/03ms2100 KiB
2Accepted0/03ms2376 KiB
3Accepted2/23ms2648 KiB
4Accepted2/23ms2932 KiB
5Accepted2/23ms2748 KiB
6Accepted3/33ms3024 KiB
7Accepted3/33ms2928 KiB
8Accepted3/33ms3188 KiB
9Accepted2/23ms3148 KiB
10Accepted2/23ms3404 KiB
11Accepted2/23ms3612 KiB
12Accepted3/33ms3568 KiB
13Accepted3/33ms3844 KiB
14Accepted3/33ms4020 KiB