Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void algos(int x, int y) //zjebana funkcja, która nie działa
- {
- if (x == y)
- wsk=0;
- else
- wsk = max(wsk, abs(odl[x]));
- odw[x] = true;
- printf("start - %d, wierzch - %d\n", y, x);
- for (int j = 0; j < (int) v[x].size(); j++) //lecimy po synach
- {
- if (odw[v[x][j].f] == false)
- {
- odl[v[x][j].f] = odl[x] + v[x][j].s;
- if (odl[v[x][j].f] < 0) //sprawdzamy wartości na tej drodze
- {
- ujemnep[-odl[v[x][j].f]]++;
- wyn+=dodatnie[-odl[v[x][j].f]];
- }
- if (odl[v[x][j].f] > 0)
- {
- dodatniep[odl[v[x][j].f]]++;
- wyn+=ujemne[odl[v[x][j].f]];
- }
- if (odl[v[x][j].f] == 0)
- {
- dodatnie[0]++;
- wyn+=dodatnie[0];
- }
- algos(v[x][j].f, y); //wrzucamy syna do funkcji
- }
- }
- for (int h = 0; h <= wsk; h++) // nie mam pojęcia co to robi, ale chyba robi dobrze xd
- {
- ujemne[h] += ujemnep[h];
- dodatnie[h] += dodatniep[h];
- ujemnep[h] = 0;
- dodatniep[h] = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement