Pagini recente » Cod sursa (job #2365056) | Cod sursa (job #2099043) | Cod sursa (job #1925176) | Cod sursa (job #2800631) | Cod sursa (job #2443890)
#include<fstream>
#include<vector>
using namespace std;
ifstream fin("amenzi.in");
ofstream fout("amenzi.out");
int t,n,m,k,p,a,b,c,C[151][3501],d[151][3501],i;
vector<pair<int,int> > v[151];
int main(){
fin>>n>>m>>k>>p;
for(i=1;i<=m;i++)
{
fin>>a>>b>>c;
v[a].push_back(make_pair(b,c));
v[b].push_back(make_pair(a,c));
}
for(i=1;i<=k;i++)
{
fin>>a>>b>>c;
C[a][b]=c;
}
d[1][0]=1;
for(t=1;t<=3500;t++)
{
for(i=1;i<=n;i++)
{
if(t!=0) d[i][t]=d[i][t-1];
for(auto it:v[i]) if(t-it.second>=0) d[i][t]=max(d[i][t],d[it.first][t-it.second]);
if(d[i][t]>0) d[i][t]+=C[i][t];
}
}
for(i=1;i<=p;i++)
{
fin>>a>>b;
fout<<d[a][b]-1<<"\n";
}
return 0;
}