Cod sursa(job #1356602)
| Utilizator | Data | 23 februarie 2015 15:02:37 | |
|---|---|---|---|
| Problema | Distante | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <fstream>
using namespace std;
ifstream is("distante.in");
ofstream os("distante.out");
int n, m, s, t;
int dmin[50001];
int a, b, c;
bool ok;
int main()
{
is >> t;
while(t)
{
ok = true;
is >> n >> m >> s;
for( int i = 1; i <= n; ++i )
is >> dmin[i];
if(dmin[s])
ok = false;
while(m)
{
--m;
is >> a >> b >> c;
if( dmin[a] + c < dmin[b] || dmin[b] + c < dmin[a] )
ok = false;
}
if( ok == false )
os << "NU\n";
else
os << "DA\n";
--t;
}
is.close();
os.close();
}
