Cod sursa(job #283926)

Utilizator raduzerRadu Zernoveanu raduzer Data 20 martie 2009 19:26:54
Problema Pitici Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;

const int MAX_N = 1030;

int n, m, k;
vector <int> v[MAX_N], c[MAX_N], a[MAX_N];
int d[MAX_N], f[MAX_N];

void bf()
{
	int i, z = 1, j, l;
	
	for (i = 1; i <= z; ++i)
	{
		for (l = 0; l < a[d[i]].size(); ++l)
			for (j = 0; j < v[d[i]].size(); ++j)
			{
				int fiu = v[d[i]][j];
			
				if (!f[fiu]) d[++z] = fiu;
				f[fiu] = 1;
				
				a[fiu].push_back(a[d[i]][l] + c[d[i]][j]);
			}
	}
}

int main()
{
	int i, x, y, cost;
	freopen("pitici.in", "r", stdin);
	freopen("pitici.out", "w", stdout);
	
	scanf("%d %d %d", &n, &m, &k);
	
	for (i = 1; i <= m; ++i)
	{
		scanf("%d %d %d", &x, &y, &cost);
		
		v[x].push_back(y);
		c[x].push_back(cost);
	}
	
	d[1] = 1;
	a[1].push_back(0);
	
	bf();
	
	sort(a[n].begin(), a[n].end());
	
	for (i = 0; i < k; ++i) printf("%d ", a[n][i]);
}