Problem:
Score : 200 points

Problem Statement

We have a string S of length N consisting of uppercase English letters.

How many times does ABC occur in S as contiguous subsequences (see Sample Inputs and Outputs)?

Constraints

3 \leq N \leq 50

S consists of uppercase English letters.

Input

Input is given from Standard Input in the following format:

N
S

Output

Print number of occurrences of ABC in S as contiguous subsequences.

Sample Input 1

10
ZABCDBABCQ

Sample Output 1

2

Two contiguous subsequences of S are equal to ABC: the 2-nd through 4-th characters, and the 7-th through 9-th characters.

Sample Input 2

19
THREEONEFOURONEFIVE

Sample Output 2

0

No contiguous subsequences of S are equal to ABC.

Sample Input 3

33
ABCCABCBABCCABACBCBBABCBCBCBCABCB

Sample Output 3

5

Solution in Java8 (OpenJDK 1.8.0) (judge verdict: Accepted)

import java.io.*;
import java.util.*;

public class Main extends PrintWriter {
    Main() { super(System.out, true); }
    Scanner sc = new Scanner(System.in);
    public static void main(String[] $) {
        Main o = new Main(); o.main(); o.flush();
    }

    void main(){
        int N = sc.nextInt();
        if(N > 50){
            N = 50;
        }
        String S = sc.next();
        int Y = 0;
        int U = 0;
        for(int i = 0; i < N;i++){
            if(Y == 0){
                if(S.charAt(i) == 'A'){
                    Y = 1;
                }
            }
            else if(Y == 1){
                if(S.charAt(i) == 'B'){
                    Y = 2;
                }
                else if(S.charAt(i) == 'A'){
                    Y = 1;
                }
                else{
                    Y = 0;
                }
            }
            else if(Y == 2){
                if(S.charAt(i) == 'C'){
                    Y = 0;
                    U++;
                }
                else if(S.charAt(i) == 'C'){
                    Y = 1;
                }
                else{
                    Y = 0;
                }
            }
        }
        print(U);
    }
}