Program nie odpala się, ale nie wyskakuje żaden błąd

0

Witam. Program nie chce się odpalić. Nie wyskakuje żaden błąd więc ciężko mi powiedzieć co jest nie tak. Jest to program ze spoja:
http://pl.spoj.com/problems/FZI_STEF/

#include <iostream>
using namespace std;
class Trasa
{
	int n;
	int m;
	int sum;
	int *tab;

public:
	void enter()
	{
		cin >> n;
		tab = new int[n];
		for (int i = 0; i < n; i++)
		{
			cin >> tab[i];
		}
	}
	void calc()
	{
		sum = 0;
		for (int i = 0; i < n; i++)
		{
			for (int j = n; j > i; j--)
			{
				for (int x = j; x > i; x--)
				{
					m += tab[j];
				}
				if (m > sum)
					sum = m;
			}
			if (m > sum)
				sum = m;
		}
	}
	void write()
	{
		cout << sum;
		delete[] tab;
	}
};
int main()
{
	Trasa t;
	t.enter();
	t.calc();
	t.write();
	return 0;
}
0

Trochę ten Twój kod uprościłem, wywaliłem trzecią pętlę (co ona tam miała robić?), zerowanie sumy dałem na początek zewnętrznej pętli (bo musi się zerować co obieg), i zamieniłem zmienne m to maksimum, a sum to chwilowa, badana suma; teraz szuka maksymalnej sumy kolejnych elementów zaczynając od pierwszego; robi to w podwójnej pętli - O(n^2). Dla testów ze strony i kilku prostych mi działa, ale Sprawdź dokładnie:

#include <iostream>
using namespace std;
class Trasa
{
    int n;
    int m;
    int sum;
    int *tab;

public:
    void enter()
    {
        cin >> n;
        tab = new int[n];
        for (int i = 0; i < n; i++)
        {
            cin >> tab[i];
        }
    }
    void calc()
    {
        
        for (int i = 0; i < n - 1; i++)
        {
			sum = 0;
            for (int j = i ; j < n; j++)
            {
                
                
                    sum += tab[j];

                if (sum >= m)
                    m = sum;
            }
            
        }
    }
    void write()
    {
        cout << m;
        delete[] tab;
    }
};
int main()
{
    Trasa t;
    t.enter();
    t.calc();
    t.write();
    return 0;
}
0

O ile dobrze pamiętam to zadanie w ten sposób ci nie przejdzie, musisz to zrobić O(n) czyli jedną pętlą.

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