Już znalazłem błąd, zamiast 101 w niektórych miejscach było 100 :)
Nieaktualne

Witam!

Napisałem program, ale nie działa on dla wszystkich wejść. Właściwie nie działa dla większości testowych, ale ja nie mogę znaleźć chociaż jednego przykładu. Czy coś przychodzi wam do głowy?

Wejście: ciąg liczb naturalnych nie większych niż 100 oddzielonych spacjami, zakończony -1.
Wyjście: liczby posegregowane według częstości występowania, jeżeli występuj tyle samo razy najpierw wypisujemy mniejszą.
Przykładowe wejście: 5 2 1 9 9 7 2 1 7 4 7 -1
Przykładowe wyjście: 7 1 2 9 4 5

Kod:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int tablica[101];
for (int i=0; i!=101; i++)
    tablica[i]=0;
int wczytana=0;
while (cin>>wczytana && wczytana!=-1)
{
    tablica[wczytana]++;
}
vector <pair <int, int> >wektor;
wektor.resize(101);
for (int i=0; i!=101; i++)
{
    wektor[i].first=tablica[i];
    wektor[i].second=i;
}
sort(wektor.rbegin(), wektor.rend());
vector<int>listawag;
listawag.resize(0);
for (int i=0; i<101; i++)
{
    if (wektor[i].first==0)
        break;
    int j=i;
    do
    {
        if (wektor[j].first==wektor[i].first && wektor[j].first!=0)
        {
            listawag.push_back(wektor[j].second);
            j++;
        }
        else
        break;
    }
    while (0==0);   
    i=j-1;
    sort(listawag.rbegin(), listawag.rend());
    while (listawag.size()!=0)
    {
        cout << listawag.back() << endl;
        listawag.pop_back();
    }
}
}