1 / 3
Dec 2021

Kod działa w clion i IDEONE, natomiast w SPOJ wyrzuca błąd SIGSEGV

(The code works in clion and IDEONE, but in SPOJ it throws an error SIGSEGV)

Podejrzewam, że brakuje gdzieś delete[]

#include <iostream>
#include <cmath>

using namespace std;
long int testy;
int licznik_uczestnikow;
double M; // 1 -1000000000 liczba ciastek w jednym pudełku
int doba = 86400; //ilość sekund w 24h
int czas_jedzenia[1000][1000];//[uczestnik][nr testu]
double wynik[100];
int nr_testu = 0;

void petla_testow();

void wczytaj();

void pokaz();

int main() {
    petla_testow();
    pokaz();
    return 0;
}

void petla_testow() {
    //  cout << "Wprowadz ilosc testow" << endl;
    cin >> testy;
    for (int i = 1; i <= testy; i++) {
        wczytaj();
    }
}

void wczytaj() {
    nr_testu = nr_testu + 1;
    //  cout << "Wprowadz liczbe zaproszonych na test nr " << nr_testu << endl;
    cin >> licznik_uczestnikow;
    //   cout << "Wprowadz ilosc ciastek w pudelku na test nr " << nr_testu << endl;
    cin >> M;
    for (int i = 1; i <= licznik_uczestnikow; i++) {
        //     cout << "Wprowadz czas jedzenia na test nr " << nr_testu << " dla osoby nr " << i  << endl;
        cin >> czas_jedzenia[i][nr_testu];
        wynik[nr_testu] = wynik[nr_testu] + floor(doba / czas_jedzenia[i][nr_testu]) / M;
    }
}

void pokaz() {
    for (int i = 1; i <= testy; i++) {
        wynik[i] = ceil(wynik[i]);
        cout << wynik[i] << endl;
    }
}

Dane wejsciowe:

2
2 10
3600
1800
3 356
123
32999
10101

  • created

    Dec '21
  • last reply

    Dec '21
  • 2

    replies

  • 401

    views

  • 2

    users

  • 2

    links

Czytający! Przeczytaj proszę wątek: 10564. Pobieranie [POB]

Dzięki za odpowiedź. W międzyczasie uświadomiłem sobie, że wyjścia nie muszą być wypisywane na końcu programu tylko mogą się wyliczać pomiędzy cinami. Po wywaleniu tablic peorgram działa prawidłowo i jest zaliczony :grinning: