#include <stdio.h> #include <set> #include <algorithm> using namespace std; const int dx[] = {-1, -1, 0, 1, 1, 1, 0, -1}; const int dy[] = ; int n, x, y; char A[100010]; set<pair<int, int>> vertex; set<pair<pair<int, int>, pair<int, int>>> edge; int main() { scanf("%d%s", &n, A); vertex.insert(); for (int i = 0 ; i < n ; ++i) { int dir = A[i] - '0'; for (int j = 0 ; j < 2 ; ++j) { int nx = x + dx[dir], ny = y + dy[dir]; pair<int, int> s = ; pair<int, int> e = ; if (e < s) { swap(s, e); } vertex.insert(); edge.insert(); x = nx; y = ny; } } int ans = 2 - (int)vertex.size() + (int)edge.size(); printf("%d\n", ans - 1); }