Pagini recente » Cod sursa (job #1339181) | Cod sursa (job #710010) | Cod sursa (job #1876115) | Cod sursa (job #585571) | Cod sursa (job #1804760)
#include <bits/stdc++.h>
using namespace std;
ifstream f("amenzi.in");
ofstream g("amenzi.out");
int N,M,K,P,i,j,k,a,b,c,A[3510][160],nod[2][2000],cost[2000],v[3510][160];
int main()
{
f>>N>>M>>K>>P;
for(i=1;i<=M;++i)
f>>nod[0][i]>>nod[1][i]>>cost[i];
for(i=M+1;i<=N+M;++i)
{
nod[0][i]=nod[1][i]=i-M;
cost[i]=1;
}
M=N+M;
for(i=1;i<=K;++i)
{
f>>a>>b>>c;
v[b][a]+=c;
}
memset(A,-1,sizeof A);
A[0][1]=0;
for(i=0;i<=3501;++i)
{
for(j=1;j<=M;++j)
for(k=0;k<=1;++k)
if(i>=cost[j]&&A[i-cost[j]][nod[!k][j]]!=-1)
A[i][nod[k][j]]=max(A[i][nod[k][j]],A[i-cost[j]][nod[!k][j]]);
for(j=1;j<=N;++j)
if(A[i][j]>=0) A[i][j]+=v[i][j];
}
while(P--)
{
f>>a>>b;
g<<A[b][a]<<'\n';
}
return 0;
}