#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |