//土尔逊Torson 编写于2023/06/14 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <queue> #include <string> using namespace std; struct num12101 { int index; string s; num12101(int i, string ss):index(i),s(ss){} }; void bfs12101(string s) { queue<num12101> q; q.push(num12101(0, s)); while (!q.empty()) { num12101 g = q.front(); q.pop(); string gs = g.s; if (gs.find("2012") != string::npos) { printf("%d\n", g.index); return; } for (int i = 0; i < gs.size() - 1; i++) { swap(gs[i], gs[i + 1]); q.push(num12101(g.index + 1, gs)); swap(gs[i], gs[i + 1]); } } printf("-1\n"); } int main() { int n; string m; while (scanf("%d", &n) != EOF) { cin >> m; bfs12101(m); } system("pause"); return EXIT_SUCCESS; } // 64 位输出请用 printf("%lld")