Błąd w zadaniu - Illegal syscal

0

Dzień dobry

Mam problem z poniższym zadaniem. Po wrzuceniu rozwiązania do sprawdzarki "themis" otrzymuje odpowiedź "Illegal syscall". Sam nie wiem gdzie zrobiłem błąd. Kod kompiluje się bez błędu i liczy wszystkie zadane wartości dobrze.

Treść zadania (NWD wielu liczb):

Napisz program, który oblicza największy wspólny dzielnik ciągu liczb naturalnych.
Wejście:
W pierwszym wierszu znajduje się liczba naturalna n, nie większa od 100000.
W drugim wierszu znajduje się ciąg n liczb naturalnych, nie większych od 10^15.
Wyjście: Liczba równa największemu wspólnemu dzielnikowi wszystkich liczb z ciągu.

Przykład
Dla danych wejściowych
4
21 224 84 1050
poprawną odpowiedzią jest: 7

Mój kod:

#include <iostream>
using namespace std;


long long nwd(long long a, long long b)
{
	long long pomocnicza;

        while (b != 0)
        {
            pomocnicza = a % b;
            a = b;
            b = pomocnicza;
        }
	return a;
}

long long nwd(long long* tab, long long ile)
{
	long long nwdw = tab[0];

        for (long long i = 1; i < ile; i++)
        {
         nwdw = nwd(nwdw, tab[i]);
        }

	return nwdw;
}

int main ()
{
	long long ile;
	long long* tab = new long long[ile];

	cerr << "Ile liczb jest w ciagu: ";
	cin >> ile;
	cerr <<"Podaj "<<ile<<" liczby: "<< endl;


        for (long long i = 0; i < ile; i++)
            {
            cin >> tab[i];
            }
        cout << "NWD ciagu = " << nwd(tab, ile) << endl;


	return 0;
}
2

Dlaczego używasz cerr, który służy do wyświetlania błędów zamiast cout?

4
    long long ile;
    long long* tab = new long long[ile];

Ile wynosi wartość zmiennej ile w momencie alokacji tablicy?

Pomijam już fakt, że:

0

Wielkie dzięki Panowie.
Po usunięciu tekstu z couta i poprawieniu alokacji sprawdzarka łykneła program.

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