Submission #1178830

#TimeUsernameProblemLanguageResultExecution timeMemory
1178830MongHwaCoin Collecting (JOI19_ho_t4)C++20
0 / 100
0 ms324 KiB
#pragma GCC optimize ("Ofast")
#pragma GCC optimize ("unroll-loops")
#include <iostream>
#include <vector>
using namespace std;

vector<int> rv, gv, yv;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    int n; string s;
    cin >> n >> s;

    int r = 0, g = 0, y = 0;
    for(int i = 0; i < n; i++)
    {
        if(s[i] == 'R')
        {
            r++;
            rv.push_back(i);
        }
        else if(s[i] == 'G')
        {
            g++;
            gv.push_back(i);
        }
        else
        {
            y++;
            yv.push_back(i);
        }
    }

    if(r-1 > g+y || g-1 > r+y || y-1 > r+g)
        cout << "-1\n";
    else if(r == g)
    {
        int val1 = 0, val2 = 0;
        int idx = 0;
        for(int x : rv)
        {
            val1 += abs(x-idx);
            idx += 2;
        }

        idx = 0;
        for(int x : gv)
        {
            val2 += abs(x-idx);
            idx += 2;
        }

        cout << min(val1, val2);
    }
    else
    {
        if(r > g)
        {
            int val = 0, idx = 0;
            for(int x : rv)
            {
                val += abs(x-idx);
                idx += 2;
            }

            cout << val << '\n';
        }
        else
        {
            int val = 0, idx = 0;
            for(int x : gv)
            {
                val += abs(x-idx);
                idx += 2;
            }

            cout << val << '\n';
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...