Zadanie z olimpiady

0

Czesc,
rozwiazalem zadanie z OI i podczas wrzucania do sprawdzenia na szkopul dostaje 100% ale mam na czerwono INI_ERROR. Czym moze to byc spowodowane?

Alokuje w sumie 5x tablic o rozmiarze siegajacym nawet do 1 000 000, ale kazda jest typu bool albo struktury z dwoma intami wiec nie powinienem przepelnic stosu. Na koncu zwalniam pamiec delete[], juz nie wiem gdzie moze tkwic problem.

Wolalbym nie udostepniac kodu z racji ze jest to olimpiada :P

1

Alokujesz na stosie? Jak tak, to czemu delete[] (pomijając już to)? Jak nie, to nie problem.

Struktura 2 intów to najczęściej 8bajtów, więc te 5 tablic zajmują 5 do 40MB pamięci w zależności od kombinacji. To zdecydowanie za dużo na stos w większości przypadków.

0

Chodzilo mi sterte, bo to tam alokuje sie dynamiczne tablice o ile mi wiaodmo. Moj blad wybacz.

Mam cos takiego

int an
cin >> a:
 int * b = new int [a] ; //5 takich tablic dla a nawet 1000000
// jakiws operacje

delete[] b;

Czy cia takiego może powodowac problemy z pamiecia na stercie?

0

Z tego co pamiętam to INI_ERROR to sie dostaje jak program nie przechodzi testu zamieszczonego w zadaniu.
Co do pamięci, to na konkursach rzadko kiedy jest potrzeba zwalniania pamięci, zwykle alokuje się tablice dla maksymalnego rozmiaru danych jako zmienne globalne.

Z kodu sprawdzarki: 'INI_ERR', 'Initial tests: failed'

0

Jak tablica boolów, to może lepiej użyć vector<bool> -- to mocno oszczędza pamięć (1 bit na element)...

0

Po pierwsze, o które zadanie chodzi.
Po drugie pokaż więcej kodu, najlepiej cały.
Po trzecie jedno z zadań (prawnicy) @neves już zamieścił bardzo ładne i szybkie rozwiązanie tutaj.

1 użytkowników online, w tym zalogowanych: 0, gości: 1