Submission #367352

#TimeUsernameProblemLanguageResultExecution timeMemory
367352piddddgyGrowing Vegetable is Fun 3 (JOI19_ho_t3)C++11
0 / 100
1 ms364 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
// #define cerr if(false) cerr
#define watch(x) cerr << (#x) << " is " << (x) << endl;
#define endl '\n'
#define ld long double
#define int long long
#define pii pair<int, int>
#define fi first
#define se second
#define sz(a) (int)(a).size()
#define all(x) (x).begin(), (x).end()

int n;
string s;

void no() {
    cout << -1 << endl;
    exit(0);
}

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

    cin >> n >> s;

    int ans = 0;
    for(int i = 1; i < n; i++) {
        if(s[i] == s[i-1]) {
            int ind = -1;
            for(int j = i+1; j < n; j++) {
                if((s[j] != s[i])) {
                    ind = j;
                    break;
                }
            }

            if(ind == -1) no();

            for(int j = ind; j >= i+1; j--) {
                swap(s[j], s[j-1]);
                ans++;
            }
        }
    }

    cout << ans << endl;
    // cout << s << endl;
}

/*



Did you read the bounds?
Did you make typos?
Are there edge cases (N=1?)
Are array sizes proper?
Integer overflow?
DS reset properly between test cases?
Is using long longs causing TLE?
Are you using floating points?
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...