---------------------------------------- Понимаю, что код over не оптимален, тем не менее не понимаю почему валидатор не прнимает, хотя вроде все работает верно ----------------------------------------
public class Solution {
    public static void main(String[] args) throws IOException{
        FileInputStream f = null;
        int cc = 0;
        byte[] b = new byte[1000];
        f = new FileInputStream(args[0]);

        while (f.available() > 0) {
            cc = f.read(b);
        }

        int[] k = new int[cc];  //рабочий массив
        byte[] c = new byte[cc];  //массив для вывода в консоль
        int nn[] = new int[cc];     //массив уникальных симовлов в файле
        int count[] = new int[cc];  //массив количества каждого уникального символа
        for(int i = 0; i < cc; i++){
            if (b[i] != 13 && b[i] != 10) {
                k[i] = b[i];//копируем все символы в рабочий массив, кроме переноса каретки на новую строку
            }
        }

        for(int i = 0; i < cc; i++){
            for(int j = i + 1; j < cc; j++){
                if (k[i] == k[j] && k[i] != -1 && k[j] != -1 && k[i] != 0 && k[j] != 0) {
                    k[i] = -1;//ищем повторяющиеся символы и заменяем их на -1
                    break;
                }
            }
        }

        int y = 0;
        int new1 = 0;
        for(int i = 0; i < cc; i++){
            if (k[i] != -1 && k[i] != 0) {
                nn[y] = k[i];//массив уникальных символов из файла
                new1++;
                y++;
            }
        }

        int o = 0;
        for(int i = 0; i < new1; i++){
            for(int j = 0; j < cc; j++) {
                if (nn[i] == b[j] && b[j] != 13 && b[j] != 10) {
                    count[i] = ++o;//количество каждого уникального символа
                }
            }
            o=0;
        }

        int bb,mm;
        for(int u = 0; u < new1; u++){
            for(int l = u + 1; l < new1; l++){
                    if (nn[u] > nn[l]) {//сортировка
                        bb = nn[l];
                        mm = count[l];
                        nn[l] = nn[u];
                        count[l] = count[u];
                        nn[u] = bb;
                        count[u] = mm;
                    }
            }
        }

        for(int p = 0; p < new1; p++){
                c[p] = Byte.parseByte(Integer.toString(nn[p]));
                System.out.println((char) c[p] + " " + count[p]);
        }

        f.close();
    }
}