Submission #844748

# Submission time Handle Problem Language Result Execution time Memory
844748 2023-09-05T19:39:04 Z Hakiers Growing Vegetable is Fun 3 (JOI19_ho_t3) C++17
0 / 100
0 ms 348 KB
#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 time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Incorrect 0 ms 348 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Incorrect 0 ms 348 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Incorrect 0 ms 348 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Incorrect 0 ms 348 KB Output isn't correct
7 Halted 0 ms 0 KB -