Submission #338295

# Submission time Handle Problem Language Result Execution time Memory
338295 2020-12-22T21:18:48 Z Gandhi Growing Vegetable is Fun 3 (JOI19_ho_t3) C++17
0 / 100
1 ms 492 KB
#include <iostream>

using namespace std;

int main()
{
    int n;
    string s;
    string ss;
    char c='R';
    cin>>n>>s;
    int sum;
    sum=0;
    int r=0;
    int g=0;
    for(int i=0;i<n;++i)
    {
        if(s[i]=='R')
        {
            ++r;
        }
        else
        {
            ++g;
        }
    }
    if(max(g-r,r-g)>1)
    {
        cout<<-1;
        return 0;
    }
    if(r>g)
    {
        for(int i=0;i<n;++i)
        {
            if(i%2==0)
            {
                for(int j=i;j<n;++j)
                {
                    if(s[j]=='R')
                    {
                        sum+=max(0,j-i);
                        s[j]=s[i];
                        s[i]='R';
                        break;
                    }
                }
            }
            else
            {
                for(int j=i;j<n;++j)
                {
                    if(s[j]=='G')
                    {
                        sum+=max(0,j-i);
                        s[j]=s[i];
                        s[i]='G';
                        break;
                    }
                }
            }
        }
    }
    else if(g>r)
    {
        for(int i=0;i<n;++i)
        {
            if(i%2==1)
            {
                for(int j=i;j<n;++j)
                {
                    if(s[j]=='R')
                    {
                        sum+=max(0,j-i);
                        s[j]=s[i];
                        s[i]='R';
                        break;
                    }
                }
            }
            else
            {
                for(int j=i;j<n;++j)
                {
                    if(s[j]=='G')
                    {
                        sum+=max(0,j-i);
                        s[j]=s[i];
                        s[i]='G';
                        break;
                    }
                }
            }
        }
    }
    else
    {
        if(s[0]=='R')
        {
            c='G';
        }
        for(int i=0;i<n;++i)
        {
            if(i%2==0)
            {
                for(int j=i;j<n;++j)
                {
                    if(s[j]==s[0])
                    {
                        sum+=max(0,j-i);
                        s[j]=s[i];
                        s[i]=s[0];
                        break;
                    }
                }
            }
            else
            {
                for(int j=i;j<n;++j)
                {
                    if(s[j]!=s[0])
                    {
                        sum+=max(0,j-i);
                        s[j]=s[i];
                        s[i]=c;
                        break;
                    }
                }
            }
        }
    }
    cout<<sum;
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Incorrect 1 ms 364 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Incorrect 1 ms 364 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 492 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Incorrect 1 ms 364 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Incorrect 1 ms 364 KB Output isn't correct
4 Halted 0 ms 0 KB -