Cod sursa(job #590697)

Utilizator iulishorIulian Popescu iulishor Data 19 mai 2011 14:07:23
Problema Distante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<fstream>
#define NMAX 5000
#define MMAX 1000
#define COSTMAX 1000
using namespace std;
ifstream f("distante.in");
ofstream g("distante.out");
int A[NMAX][MMAX],i,j,n,m,s,T;
int COST[COSTMAX][COSTMAX];
int DIST[NMAX];
int ok=0;
int MAKE[NMAX];
int nod_curent,nod_sursa,nod;
void reinit()
{
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
			A[i][j]=NULL;
		COST[i][j]=NULL;
		DIST[i]=0;
	}
}
void afis()
{
	g<<"DA";
	g<<"\n";
	g<<"NU";
}
int check(int q,int p)
{
	if(A[q][2]==A[2][q] && A[2][q]==A[2][p] && A[2][p]==A[p][2])
		return 1;
	return 0;
}
int main()
{
	f>>T;
	int x,y,cost;
	while(T)
	{
		f>>n>>m>>s;
		for(i=1;i<=n;i++)
			f>>DIST[i];
		for(i=1;i<=m;i++)
		{
			f>>x>>y>>cost;
			A[x][y]=A[y][x]=1;
			COST[x][y]=COST[y][x]=cost;
		}
		nod_sursa=s;
		MAKE[1]=COST[nod_sursa][nod_sursa];
		for(j=2;j<=n;j++)
		{
			if(A[nod_sursa][j]==1)
			{
				MAKE[j]=COST[nod_sursa][j];
			}
			else
			{
				if(check(nod_sursa,j))
					MAKE[j]=COST[1][2]+COST[2][j];
			}
		}
		for(j=1;j<=n;j++)
		//	g<<MAKE[i]<<" ";
		T=0;
	}
	afis();
	return 0;
}