Pagini recente » Cod sursa (job #2958771) | Istoria paginii runda/wellcodesimulareclasa10-11martie | Cod sursa (job #1734100) | Cod sursa (job #927838) | Cod sursa (job #2900359)
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
FILE *in,*out;
int N,M,S,T,X,Y,Z;
vector<int> v(N + 1 , 0);
bool flag;
int main()
{
in = fopen("distante.in","r");
out = fopen("distante.out","w");
fscanf(in,"%d",&T);
for(int t=1;t<=T;t++)
{
fscanf(in,"%d%d%d",&N,&M,&S);
flag=true;
// distantele minime calculate de bronzarel
for(int i=1;i<=N;i++)
fscanf(in,"%d",&v[i]);
// iau fiecare muchie din fisier si incerc sa vad daca pot obtine un drum mai scurt,adica x,y sunt capetele muchie,iar c costul si verific daca d+c<d[y]||d[y]+c<d
for(int i=1;i<=M;i++)
{
fscanf(in,"%d%d%d",&X,&Y,&Z);
if((v[X] + Z < v[Y]) || (v[Y] + Z < v[X]))
// bronzarel nu a calculat bine distanta
flag = false;
}
if(flag)
fprintf(out,"DA\n");
else
fprintf(out,"NU\n");
}
return 0;
}