Pagini recente » Cod sursa (job #1840597) | Cod sursa (job #564887) | Cod sursa (job #1661811) | Cod sursa (job #956186) | Cod sursa (job #2718532)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("amenzi.in");
ofstream cout("amenzi.out");
vector <pair<int,int>> v[155];
int n,m,k,p,x,y,c,a[3505][155],d[3505][155],nodd,t;
int main()
{
cin>>n>>m>>k>>p;
for(int i=1;i<=m;i++){
cin>>x>>y>>c;
v[x].push_back({y,c});
v[y].push_back({x,c});
}
for(int i=1;i<=k;i++){
cin>>x>>y>>c;
a[y][x]+=c;
}
for(int i=0;i<=3501;i++){
for(int j=0;j<=n;j++){
d[i][j]=-1;
}
}
d[0][1]=0;
for(int i=1;i<=3501;i++){
for(int j=1;j<=n;j++){
d[i][j]=d[i-1][j];
for(auto x: v[j]){
if(i-x.second>=0)
d[i][j]=max(d[i][j],d[i-x.second][x.first]);
}
if(d[i][j]>=0)
d[i][j]+=a[i][j];
}
}
while(p--){
cin>>nodd>>t;
cout<<d[t][nodd]<<'\n';
}
return 0;
}