vector<int> intv{5, 4, 1, 3, 2};
vector<char> charv{'R', 'Q', 'T', 'A', 'X'};
map<int, char> res;
for (size_t idx {0} ; idx < intv.size() ; idx++)
res[intv[idx]] = charv[idx];
for (auto kv : res)
cout << kv.first << " " << kv.second << endl;
typedef std::vector<int> my_container;
my_container v;
size_t size = sizeof(my_container::value_type);
На каждом отрезке от 10*n до 10*n+9 таких чисел ровно 5. Поэтому нам достаточно посчитать число таких полных отрезков, и обработать краевые отрезки. Пусть sumdig(n) - функуция, которая выдаёт остаток от деления суммы цифр n на 2. Тогда: int s0=(B/10-A/10-1)*5; int s1=(10+sumdig(A/10)-A%10)/2; int s2=(2+B%10-sumdig(B/10))/2; return s0+s1+s2;