Submission #98784

# Submission time Handle Problem Language Result Execution time Memory
98784 2019-02-25T21:13:12 Z bogdan10bos Growing Vegetable is Fun 3 (JOI19_ho_t3) C++14
0 / 100
3 ms 384 KB
#include <bits/stdc++.h>

using namespace std;

//#define FILE_IO

int N;
string s;

int solve1(string _s)
{
    string s = _s;

    int ans = 0;
    for(int i = 1; i < N; i++)
    {
        if(s[i] != s[i - 1])    continue;
        for(int j = i + 1; j < N; j++)
            if(s[j] != s[i])
            {
                while(j > i)
                {
                    swap(s[j], s[j - 1]);
                    j--;
                    ans++;
                }
                break;
            }
    }
    for(int i = N - 1; i > 0; i--)
    {
        if(s[i] != s[i - 1])    continue;
        for(int j = i - 2; j > 0; j--)
            if(s[j] != s[i])
            {
                while(j < i - 1)
                {
                    swap(s[j], s[j + 1]);
                    j++;
                    ans++;
                }
                break;
            }
    }
    for(int i = 1; i < N; i++)
        if(s[i] == s[i - 1])    return -1;
    return ans;
}

int solve2(string _s)
{
    string s = _s;

    int ans = 0;
    for(int i = N - 1; i > 0; i--)
    {
        if(s[i] != s[i - 1])    continue;
        for(int j = i - 2; j > 0; j--)
            if(s[j] != s[i])
            {
                while(j < i - 1)
                {
                    swap(s[j], s[j + 1]);
                    j++;
                    ans++;
                }
                break;
            }
    }
    for(int i = 1; i < N; i++)
    {
        if(s[i] != s[i - 1])    continue;
        for(int j = i + 1; j < N; j++)
            if(s[j] != s[i])
            {
                while(j > i)
                {
                    swap(s[j], s[j - 1]);
                    j--;
                    ans++;
                }
                break;
            }
    }
    for(int i = 1; i < N; i++)
        if(s[i] == s[i - 1])    return -1;
    return ans;
}

int main()
{
    #ifdef FILE_IO
    freopen("1.in", "r", stdin);
    //freopen("1.out", "w", stdout);
    #endif

    cin >> N;
    cin >> s;

    int x = solve1(s);
    int y = solve2(s);

    cout << min(x, y) << '\n';

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Incorrect 2 ms 384 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Incorrect 2 ms 384 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 384 KB Output is correct
2 Correct 3 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Incorrect 2 ms 384 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Incorrect 2 ms 384 KB Output isn't correct
7 Halted 0 ms 0 KB -