Submission #844748

#TimeUsernameProblemLanguageResultExecution timeMemory
844748HakiersGrowing Vegetable is Fun 3 (JOI19_ho_t3)C++17
0 / 100
0 ms348 KiB
#include <bits/stdc++.h> using namespace std; string s, t; int n; int moves, moves2; void repair(int idx){ while(idx - 1 > 0 && s[idx-1] == s[idx-2]){ swap(s[idx], s[idx-1]); moves++; idx--; } } void repair2(int idx){ while(idx - 1 > 0 && t[idx-1] == t[idx-2]){ swap(t[idx], t[idx-1]); moves2++; idx--; } } int solve(){ for(int i = 1; i < n; i++) if(s[i] != s[i-1]) repair(i); reverse(s.begin(), s.end()); for(int i = 1; i < n; i++) if(s[i] != s[i-1]) repair(i); for(int i = 1; i < n; i++) if(s[i] == s[i-1]) return - 1; return moves; } int solve2(){ for(int i = 1; i < n; i++) if(t[i] != t[i-1]) repair2(i); reverse(t.begin(), t.end()); for(int i = 1; i < n; i++) if(t[i] != t[i-1]) repair2(i); for(int i = 1; i < n; i++) if(t[i] == t[i-1]) return - 1; return moves2; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> s; t = s; reverse(t.begin(), t.end()); cout << min(solve(), solve2()) << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...