Pierwsza sprawa - nazywaj sensownie swoje zmienne. Nic nikomu nie mówi coś, co się nazywa a, j czy z. Szczególnie, kiedy nie piszesz dla siebie - a na egzaminie tak właśnie jest. ;)
Druga sprawa - nie rozumiem, dlaczego w pierwszym kodzie zaczynasz pętlę wewnętrzną od i = 2 - to nie ma sensu, przecież każdy łańcuch musisz przeszukać od samego początku.
Trzecia sprawa - nie iteruj aż i <= a.size(), bo wychodzisz poza zakres. Metoda std::string::size() zwraca liczbę elementów, a nie ostatni indeks. Powinno być i < a.size().
Twój ostatni kod jest prawie dobry. :) Poza tym wykraczaniem poza zakres a. Wystarczy tylko wyciągnąć porównywanie ilości zer i jedynek poza wewnętrznego fora. ;)