Trochę zmieniłem kod, wklejam go poniżej. Program kompiluje się poprawnie, wszystko działa dobrze tylko automatyczna sprawdzarka online wywala błąd "naruszenie regulaminu". Ma ktoś z was jakiś pomysł? Zostało 30 min.. z góry dziękuję :)
#include <cstdlib>
#include <iostream>
using namespace std;
char link[101][101];
char tab2[101];
int sciezka[101];
int tab[101];
int Node,Edge;
int top,back;
void start() {
int i, j;
for(i = 1; i <= Node; i++) {
for(j = 1; j <= Node; j++) {
link[i][j] = 0;
}
sciezka[i] = i;
tab2[i] = 0;
}
}
int pop() {
int n = tab[top++];
top %= 101;
return n;
}
void drukuj(int n) {
if(n == sciezka[n]) {
cout << n;
return;
}
drukuj(sciezka[n]);
cout << " " << n;
}
void wstaw(int n) {
tab[back++] = n;
back %= 101;
}
bool czyPusta() {
if(top == back) return 0;
return 1;
}
void BFS(int s, int ter) {
int u, v, i;
wstaw(s);
tab2[s] = 1;
while(czyPusta() == 1) {
v = pop();
if(v == ter) {
drukuj(v);
return;
}
for(i = 1; i<= Node; i++) {
if(link[v][i] == 1 && tab2[i] == 0) {
tab2[i] = 1;
wstaw(i);
sciezka[i] = v;
}
}
}
cout << "nie ma drogi";
return;
}
int main() {
int v, s, i;
cin >> Node;
cin >> Edge;
start();
for(int i=0; i<Edge; i++) {
cin >> s >> v;
link[s][v] = 1;
link[v][s] = 1;
}
cin >> s >> v;
BFS(s,v);
return 0;
}
E: jeśli program by zwracał złe dane to bym dostał komunikat Wrong answer. Niestety program wysypuje się gdzieś wcześniej, z kolei jak to kompiluję u siebie to wszystko działa okej.. nic z tego nie rozumiem