Pagini recente » Cod sursa (job #488731) | Cod sursa (job #1342263) | Cod sursa (job #2928749) | Cod sursa (job #231627) | Cod sursa (job #1999792)
#include <bits/stdc++.h>
#define TMAX 35001
using namespace std;
ifstream si("amenzi.in");
ofstream so("amenzi.out");
vector<pair<int,int> >v[151];
pair<int,int> q[8001];
int d[151][TMAX],c[151][TMAX];
int main()
{
int n,m,k,p,x,y,z;
si>>n>>m>>k>>p;
for(int i=1;i<=m;++i)
{
si>>x>>y>>z;
v[x].push_back({y,z});
v[y].push_back({x,z});
}
//cout<<1;
for(int i=1;i<=k;++i)
{
si>>x>>y>>z;
c[x][y]+=z;
}
//cout<<1;
for(int i=1;i<=p;++i)
{
si>>x>>y;
q[i].first=x;
q[i].second=y;
}
//cout<<1;
memset(d,-1,sizeof(d));
//cout<<1;
d[1][0]=0;
for(int t=1;t<=TMAX;++t)
for(int nod=1;nod<=n;++nod)
{
for(auto it:v[nod])
{
if(t-it.second>=0)
d[nod][t]=max(d[nod][t],d[it.first][t-it.second]);
}
d[nod][t]=max(d[nod][t],d[nod][t-1]);
if(d[nod][t]>=0) d[nod][t]+=c[nod][t];
}
//cout<<1;
for(int i=1;i<=p;++i)
{
so<<d[q[i].first][q[i].second]<<'\n';
}
return 0;
}