贪心算法求完美值完在oj网站上能得到正确结果,vs就出问题

输入一个字符串S(S的长度 <= 10000),S中没有除字母外的其他字符
由你将1-26分配给不同的字母,使得字符串S的完美度最大,输出这个完美度。

 #include <iostream>
#include <string>
using namespace std;
int main(){
    int i;
    int j = 0;
    string S;
    int a[26];
    int b[26];
    a[0] = S[0];
    b[0] = 1;
    int sum = 0;
    cin >> S;
    for (i = 1; i<S.length(); i++){
        if (S[i] <= 'Z'&&S[i] >= 'A'){
            S[i]+=32;
        }
        else{
            (int)S[i];
        }
        for (int k = 0; k <= j; k++){
            if (S[i] == a[k]){
                b[k] += 1;
            }
            else{
                j++;
                a[j] = S[i];
                b[j] += 1;
            }
        }
    }
    for (int k = 0; k<j; k++){
        for (int c = 0; c<j - k - 1; c++){
            if (b[c]>b[c + 1]){
                int tmp = b[c];
                b[c] = b[c + 1];
                b[c + 1] = tmp;
            }
        }
    }
    for (int k = 0, c = 26; k<j; k++, c--){
        sum = sum + b[k] * c;
    }
    printf("%d\n", sum);
    system("pause");
    return 0;

}

所以vs上出现的问题是……