Pagini recente » Cod sursa (job #1914945) | Cod sursa (job #2027502) | Cod sursa (job #3282372) | Cod sursa (job #1865845) | Cod sursa (job #783983)
Cod sursa(job #783983)
#include<iostream>
#include<vector>
#include<algorithm>
#include<fstream>
using namespace std;
vector <pair<int,int> > v[160];
int m,n,k,p,amenzi[3512][162],x,y,z,a[3512][162];
int main(void)
{
fstream f,g;
f.open("amenzi.in",ios::in);
g.open("amenzi.out",ios::out);
f>>n>>m>>k>>p;
int i;
for (i=1;i<=m;i++)
{
f>>x>>y>>z;
v[x].push_back(make_pair(y,z));
v[y].push_back(make_pair(x,z));
}
for (i=1;i<=k;i++)
{
f>>x>>y>>z;
amenzi[y][x]+=z;
}
int p,prec,cost,j;
for (i=0;i<=3512;i++)
for (j=0;j<=n;j++)
a[i][j]=-1;
a[0][1]=amenzi[0][1];
for (i=1;i<=3506;i++)
for (j=1;j<=n;j++)
{
for (p=0;p<v[j].size();p++)
{
prec=v[j][p].first;
cost=v[j][p].second;
if (i>=cost)
a[i][j]=max(a[i][j],a[i-cost][prec]);
}
a[i][j]=max(a[i-1][j],a[i][j]);
if (a[i][j]!=-1)
a[i][j]+=amenzi[i][j];
}
for (i=1;i<=p;i++)
{
f>>x>>y;
g<<a[y][x]<<"\n";
}
}