Problem:
Score : 200 points

Problem Statement

You are given a string S of length N consisting of lowercase English letters.
We will cut this string at one position into two strings X and Y.
Here, we would like to maximize the number of different letters contained in both X and Y.
Find the largest possible number of different letters contained in both X and Y when we cut the string at the optimal position.

Constraints

2 \leq N \leq 100

|S| = N

S consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

N
S

Output

Print the largest possible number of different letters contained in both X and Y.

Sample Input 1

6
aabbca

Sample Output 1

2

If we cut the string between the third and fourth letters into X = aab and Y = bca, the letters contained in both X and Y are a and b.
There will never be three or more different letters contained in both X and Y, so the answer is 2.

Sample Input 2

10
aaaaaaaaaa

Sample Output 2

1

However we divide S, only a will be contained in both X and Y.

Sample Input 3

45
tgxgdqkyjzhyputjjtllptdfxocrylqfqjynmfbfucbir

Sample Output 3

9

Solution in C (GCC 5.4.1) (judge verdict: Wrong Answer)

# define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

 int main(){
    int N = 0;
    char S[125];
    char X[256];
    char Y[256];
    int cnt[26];
    int loop = 0;
    int loop2 = 0;
    int loop3 = 0;
    int ans = 0;

    memset(S, 0x00, sizeof(S));
    memset(cnt, 0x00, sizeof(cnt));

    scanf("%d%s", &N, S);

    for (loop = 0; loop < N; loop++){
        memset(X, 0x00, sizeof(X));
        memset(Y, 0x00, sizeof(Y));
        strncpy(X, S, loop);
        strncpy(Y, S + loop, N - loop);

        for (loop2 = 0; loop2 < 26; loop2++){
            if ((NULL != strchr(X, 'a' + loop2)) && (NULL != strchr(Y, 'a' + loop2))){
                cnt[loop]++;
            }
        }
    }

    ans = cnt[0];
    for (loop3 = 0; loop3 < 26; loop3++){
        if (cnt[loop3] > ans){
            ans = cnt[loop3];
        }
    }
    printf("%d", ans);

    return 0;

}