DFS - problem z programem

0

Witam!

Czy moglibyście mi powiedzieć, co w moim kodzie jest źle zrobione? Wiem, że coś jest, bo sprawdzarka wywala 1 wrong answer (na 8 testów). Z góry dziękuję :)

#include <stdio.h>
#include <string.h>
#define ui unsigned int
using namespace std;
const ui nieodwiedzony=0, przetwarzany=1, przetworzony=2, rozmiar=100000;
struct E {E*next; ui u;};
E*L[rozmiar+1];
ui element=0, stos[rozmiar], stan[rozmiar+1];
void DFS(ui value);
bool graf_acykliczny=true;
main()
{
	ui n, m;
	scanf("%d%d", &n, &m);
 	memset(L, 0, n*sizeof(ui));
	memset(stan, 0, n*sizeof(ui));
        ui u,v;
	for(ui i=1; i<=m; i++)
	{
		E*p;
		scanf("%d%d", &u, &v);
		p=new E;
		p->next=L[u];
		p->u=v;
		L[u]=p;
	}
	for(ui v=1; v<=n; v++)
		if(stan[v]==nieodwiedzony)
		{
			DFS(v);
			if(!graf_acykliczny) break;
		}
		if(!graf_acykliczny)
                	printf("NIE");
		else
                	for(int i=element-1; i>=0; i--)
                        	printf("%d ", stos[i]);
}
void DFS(ui value)
{
	stan[value] = przetwarzany;
	E*p=L[value];
	while(p)
	{
		switch(stan[p->u])
		{
			case przetwarzany:
                        	graf_acykliczny=false; return;
			case nieodwiedzony:
                        	DFS(p->u);
				if(!graf_acykliczny) return;
				break;
    		}
		p=p->next;
        }
	stan[value]=przetworzony;
	stos[element++]=value;     
}

Wejście standardowe: ilość wierzchołków, ilość warunków, warunki w osobnych liniach, np.

8 9
8 7
7 1
7 5
6 4
5 1
4 5
3 5
3 2
2 7
0

Co to za formatowanie?

Stawiaj mniej spacji. Cała struktura z dwoma instrukcjami w jednej linijce też nie za ładnie wygląda (jest to moje zdanie, ale myślę, że inni podobnie powiedzą), na początku myślałem, że jest to wzorzec, później dopiero zobaczyłem, że to zwykła struktura z nawiasami klamrowymi.

Co większe bloki kodu oddzielaj pustą linią.

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