«Я не знаю, как написать цикл для сравнения 100 возможных цветов и иметь отдельные счетчики для каждого».
Вы можете иметь отдельные счетчики для каждого, определив массив для счетчиков. Для вас «цвета» - это целые числа, поэтому индекс массива может служить «цветом», который вы рассчитываете. Сохраненное значение (для каждого элемента в массиве) будет количеством раз, когда вы видели этот «цвет» на входе.
Затем зациклите ввод и увеличьте соответствующий элемент в вашем массиве счетчиков. Таким образом, не имеет значения, будет ли совпадение данного носка следующим в строке на входе или на расстоянии нескольких элементов ввода, и вам не нужно будет делать что-то дорогое, например, сравнивать каждый элемент ввода с любым другим элементом ввода.
В конце этого цикла переберите ваш массив счетчиков; значение в каждом элементе скажет вам об этом "цветном" носке:
0 : no socks of that color in the input
odd number : there are `x / 2` pairs of this color and an odd sock
even number : there are `x / 2` pairs of this color
Подсчитайте количество пар и нечетных носков по ходу, и в конце у вас будет общее количество пар носков и нечетных носков, которое, как я полагаю, является желаемым выходом.