Submission #139617

#TimeUsernameProblemLanguageResultExecution timeMemory
139617mlyean00Growing Vegetable is Fun 3 (JOI19_ho_t3)C++14
0 / 100
3 ms452 KiB
#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; } } else { for (int j = i; j < j2; ++j) { swap(s[j], s[j + 1]); ++ans; } } } cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...