Pagini recente » Cod sursa (job #1118624) | Cod sursa (job #2620200) | Cod sursa (job #2098474) | Cod sursa (job #3042134) | Cod sursa (job #987438)
Cod sursa(job #987438)
#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)
{
a=mc[j][0]; b=mc[j][1]; c=i-mc[j][2];
if (c>0)
{
if (rs[b][c]>-1)
if (rs[a][i]<=rs[b][c]+infr[a][i]) rs[a][i]=rs[b][c]+infr[a][i];
if (rs[a][c]>-1)
if (rs[b][i]<=rs[a][c]+infr[b][i]) rs[b][i]=rs[a][c]+infr[b][i];
}
}
for (int j=1;j<=n;++j) if (j>0) if (rs[j][i-1]>-1 && rs[j][i]<rs[j][i-1]+infr[j][i]) rs[j][i]=rs[j][i-1]+infr[j][i];
}
ofstream out ("amenzi.out");
for (int i=1;i<=p;++i)
{
in>>a>>b;
out<<rs[a][b]<<"\n";
}
in.close();
out.close();
}