Witam, stworzyłem sobie programik do tego zadania https://main2.edu.pl/c/kurs-podstaw-algorytmiki-druga-e/p/akc/
U mnie nie powoduje żadnych błędów, lecz na stronie po wysłaniu zadania do sprawdzarki w większości testów otrzymuję błąd wykonania "process exited due to signal 6"
Oto kod:
#include <iostream>
using namespace std;
long szukaj_pierwszej(long poczatek, long koniec, long *x, long *tablica){ //wyszukiwanie binarne ;)
long srodek;
while (poczatek < koniec)
{
srodek = (poczatek + koniec) / 2;
if(tablica[srodek] >= *x)
koniec = srodek;
else
poczatek = srodek + 1;
}
if(tablica[poczatek]==*x){
return poczatek;
}
else{
return -1;
}
}
long szukaj_ostatniej(long poczatek, long koniec, long *x, long *tablica){
long srodek;
while (poczatek < koniec)
{
srodek = (poczatek + koniec+1) / 2;
if(tablica[srodek] <= *x)
poczatek = srodek;
else
koniec = srodek - 1;
}
if(tablica[poczatek]==*x){
return poczatek;
}
else{
return -1;
}
}
int main()
{
long liczba_czastek;
cin >> liczba_czastek;
long * ciag = new long[liczba_czastek];
for(long i=0; i<liczba_czastek; ++i){
cin >> ciag[i];
}
long liczba_zapytan;
cin >> liczba_zapytan;
long zapytania[liczba_zapytan];
for(long i=0; i<liczba_zapytan; ++i){
cin >> zapytania[i];
}
for(long i=0; i<liczba_zapytan; ++i){
long * liczba_szukana = new long;
*liczba_szukana = zapytania[i];
long * indeks_pierwszej_szukanej = new long;
*indeks_pierwszej_szukanej = szukaj_pierwszej(0, liczba_czastek-1, liczba_szukana, ciag);
if(*indeks_pierwszej_szukanej==-1){
cout << "0" << endl;
}
else{
long * indeks_drugiej_szukanej = new long;
*indeks_drugiej_szukanej = szukaj_ostatniej(0, liczba_czastek-1, liczba_szukana, ciag);
long * ilosc_wystapien = new long;
*ilosc_wystapien = (*indeks_drugiej_szukanej-*indeks_pierwszej_szukanej)+1;
delete indeks_drugiej_szukanej;
cout << *ilosc_wystapien << endl;
delete ilosc_wystapien;
}
delete liczba_szukana;
delete indeks_pierwszej_szukanej;
}
delete [] ciag;
delete [] zapytania;
return 0;
}
Ma ktoś może pomysł co jest powodem tego błędu? Pozdrawiam serdecznie