Cod sursa(job #2273230)

Utilizator eilerGabriel-Ciprian Stanciu eiler Data 31 octombrie 2018 10:49:37
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
/// but this older code works
/// ... wtf g++

#include <fstream>
#include <vector>
using namespace std;

fstream f;
struct lk{
	int y, ds;
} ax;
int n, m, x, y;
vector <int> cost(30000), c(30000);
vector <vector <lk> > d(30000);
vector <bool> v(30000);

int main(){
	int i, j, k, l;

	f.open("sate.in", ios_base::in);
	f >> n >> m >> x >> y;
	x--; y--;
	for (k=0; k<m; k++){
		f >> i >> j >> l;
		i--; j--;
		ax.y=j; ax.ds=l;
		d[i].push_back(ax);
		ax.y=i; ax.ds=-l;
		d[j].push_back(ax);
	}
	f.close();

	i=0; j=0; v[x]=true; cost[x]=0; c[0]=x;
	while (i<=j){
		for (k=0; k<d[c[i]].size(); k++)
			if (v[d[c[i]][k].y]==false){
				v[d[c[i]][k].y]=true;
				c[++j]=d[c[i]][k].y;
				cost[d[c[i]][k].y]=cost[c[i]]+d[c[i]][k].ds;
			}
		i++;
	}

	f.open("sate.out", ios_base::out);
	f << cost[y] << '\n';
	f.close();

	return 0;
}