Бедный Ваня

Ваня всегда мечтал стать художником, но его работы были настолько посредственными, что никто не хотел их покупать. Тогда он решил, что станет арт-диллером, но найти достойных живописцев он не сумел, поэтому придумал мошшеническую схему с продажей копий работ известных художников, которые он выдавал за подлинники. В галерее, в которой работает Ваня, каждой картине соответствует уникальный код. Чтобы заработать больше денег, Ваня решил продавать работы Павлу Четверякову -- самому известному потомственному коллекционеру города. Друзья арт-диллеры рассказали Ване, что у Павла есть особый алгоритм, который определяет, является ли картина подлинником, и рассказали, как его можно обойти. Четверяков сравнивает уникальный код из собственной базы данных с кодом картины, которую собирается приобрести. Эти коды достались ему от дедушки, который записывал их вручную, поэтому некоторые из них не совсем корректны, поэтому Павел использует коэффициент 
k
k, отвечающий за допустимое количество отличий от кода картины, которую он планирует купить. Если отличий меньше, чем 
k
k, то он приобретает её к себе в коллекцию. Ване удалось раздобыть коды Павла. Помогите ему узнать, приобретёт ли коллекционер его работу.

Входные данные

В первой строке задаются три числа: 
n
<
5
∗
1
0
6
n<5∗10 
6
  (длина закодированного с помощью RLE кода Павла Четверякова), 
m
<
5
∗
1
0
6
m<5∗10 
6
  (длина длина закодированного с помощью RLE кода картины Вани), 
k
<
5
∗
1
0
9
k<5∗10 
9
 (количество возможных отличий)

Выходные данные

Вывести 
Y
e
s
Yes, если Павел приобретёт картину, иначе вывести 
N
o
No. #include <iostream>

int GetNum(std::string& str, int& ind) {
    int num = 0;
    while (ind < str.length() && str[ind] < 'A') {
        num = num * 10 + (str[ind] - '0');
        ++ind;
    }
    --ind;
    return num;
}

int main() {
    int pavel, ivan, k;
    std::cin >> pavel >> ivan >> k;
    std::string str_pavel, str_ivan;
    std::cin >> str_pavel;
    std::cin >> str_ivan;
    int count = 0;
    int i = 0;
    int j = 0;
    while (i < pavel || j < ivan) {
        if (count >= k) {
            break;
        }
        if (i == pavel || j == ivan) {
            if (j == ivan) {
                for (int l = j + 1; l < pavel; ++l) {
                    int num = GetNum(str_pavel, l);
                    count += num;
                }
                break;
            } else {
                for (int l = j + 1; l < ivan; ++l) {
                    int num = GetNum(str_ivan, l);
                    count += num;
                }
                break;
            }
        } else {
            char symbol_pavel = str_pavel[i];
            char symbol_ivan = str_ivan[j];
            ++i;
            ++j;
            int num_pavel = GetNum(str_pavel, i);
            int num_ivan = GetNum(str_ivan, j);
            if (num_pavel == num_ivan) {
                if (symbol_pavel != symbol_ivan) {
                    count += num_pavel;
                }
            } else if (num_pavel < num_ivan) {
                j -= num_ivan - num_pavel;
                count += num_pavel;
            } else {
                i -= num_pavel - num_ivan;
                count += num_ivan;
            }
        }
        ++i;
        ++j;
    }
    std::cout << count << '\n';
    if (count < k) {
        std::cout << "Yes";
    } else {
        std::cout << "No";
    }

    return 0;
}
why when input is 5 5 4
a4F13
F13a4 it returns 4
No when it should return 8
No