Cod sursa(job #557183)

Utilizator alexdmotocMotoc Alexandru alexdmotoc Data 16 martie 2011 14:51:20
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;


long long n , m , s , x , y , cost;
bool a[10005][10005];
int ok = 0;

int main ()
{
	ifstream f ("bfs.in");
	ofstream g ("bfs.out");
	
	f >> n >> m >> s;
	
	for (long long i = 1 ; i <= m ; ++i)
	{
		f >> x >> y;
		a[x][y] = true;
	}
	
	for (long long t = 1 ; t <= n ; ++t)
	{
		cost = 0;
		ok = 0;
		
		if(a[s][t] && s != t)
			g << 1 << " ";
		else if (a[s][t] && s == t)
			g << 0 << " ";
		else
		{
			for (long long j = t + 1 ; j <= n && ok == 0 ; ++j)
				if (a[s][j])
				{
					cost++;
					for (long long i = 1 ; i <= n ; ++i)
						if (a[j][i] && i == t)
						{
							ok = 1;
							cost++;
							break;
						}
				}
		if (ok == 0)
			g << -1 << " ";
		else g << cost << " ";
		
		}
	}
		
	return 0;
}