Pagini recente » Cod sursa (job #1903409) | Cod sursa (job #3214648) | Cod sursa (job #603342) | Cod sursa (job #388279) | Cod sursa (job #987429)
Cod sursa(job #987429)
#include <fstream>
using namespace std;
int n,m,k,p,a,b,c,mc[1505][3];
int infr[155][3505],rs[155][3505];
int main ()
{
ifstream in ("amenzi.in");
in>>n>>m>>k>>p;
for (int i=1;i<=m;++i)
{
in>>mc[i][0]>>mc[i][1]>>mc[i][2];
}
for (int i=1;i<=k;++i)
{
in>>a>>b>>c;
infr[a][b]+=c;
}
for (int i=0;i<=154;++i)
for (int j=0;j<=3504;++j)
{
rs[i][j]=-1;
}
rs[1][0]=0;
for (int i=0;i<=3500;++i)
{
for (int j=1;j<=m;++j)
{
if (mc[j][2]<=i)
{
if (rs[mc[j][1]][i-mc[j][2]]>-1)
if (rs[mc[j][0]][i]<=rs[mc[j][1]][i-mc[j][2]]+infr[mc[j][0]][i]) rs[mc[j][0]][i]=rs[mc[j][1]][i-mc[j][2]]+infr[mc[j][0]][i];
if (rs[mc[j][0]][i-mc[j][2]]>-1)
if (rs[mc[j][1]][i]<=rs[mc[j][0]][i-mc[j][2]]+infr[mc[j][1]][i]) rs[mc[j][1]][i]=rs[mc[j][0]][i-mc[j][2]]+infr[mc[j][1]][i];
}
}
}
ofstream out ("amenzi.out");
for (int i=1;i<=p;++i)
{
in>>a>>b;
out<<rs[a][b]<<"\n";
}
in.close();
out.close();
}