Submission #139619

# Submission time Handle Problem Language Result Execution time Memory
139619 2019-08-01T07:52:05 Z mlyean00 Growing Vegetable is Fun 3 (JOI19_ho_t3) C++17
0 / 100
2 ms 380 KB
#ifdef DEBUG
#include "debug.hpp"
#else
#pragma GCC optimize("Ofast")
#define trace(...)
#include <bits/stdc++.h>
#define endl '\n'
#endif

using namespace std;

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

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

    int ans = 0;
    for (int i = 1; i < n; ++i) {
        if (s[i] != s[i - 1]) continue;
        int j1, j2;
        for (j1 = i - 2; j1 >= 0; --j1) {
            if (s[i - 1] != s[j1] && (j1 == 0 || s[i - 1] != s[j1 - 1])) break;
        }
        for (j2 = i + 1; j2 < n; ++j2) {
            if (s[i - 1] != s[j2]) break;
        }
        if (j1 == -1 && j2 == n) {
            ans = -1;
            break;
        }

        int cost1 = j1 == -1 ? INT_MAX : (i - 1) - j1;
        int cost2 = j2 == n ? INT_MAX : j2 - i;

        if (cost1 < cost2) {
            for (int j = i - 1; j > j1; --j) {
                swap(s[j], s[j - 1]);
            }
            ans += cost1;
        } else {
            for (int j = j2; j > i; --j) {
                swap(s[j], s[j - 1]);
            }
            ans += cost2;
        }
    }

    cout << ans << endl;

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