Pagini recente » Cod sursa (job #1979901) | Cod sursa (job #555546) | Cod sursa (job #190726) | Cod sursa (job #1745233) | Cod sursa (job #16891)
Cod sursa(job #16891)
#include <stdio.h>
#define TMAX 3555
#define NMAX 155
int A[NMAX][NMAX], G[NMAX], D[TMAX][NMAX], Am[TMAX][NMAX], T[NMAX][NMAX];
int N, M, K, P;
int max(int a, int b)
{
return ((a) > (b) ? (a):(b));
}
int main()
{
int a, b, c, i, j, k, fiu;
freopen("amenzi.in", "r", stdin);
scanf("%d %d %d %d", &N, &M, &K, &P);
for (i = 0; i < M; i++)
{
scanf("%d %d %d", &a, &b, &c);
A[a][ G[a] ] = b; T[a][ G[a]++ ] = c;
A[b][ G[b] ] = a; T[b][ G[b]++ ] = c;
}
for (i = 0; i < K; i++)
{
scanf("%d %d %d", &a, &b, &c);
Am[b][a] += c;
}
for (j = 1; j <= N; j++)
for (i = 0; i < TMAX; i++)
{
D[i][j] += Am[i][j];
for (k = 0; k < G[j]; k++)
{
fiu = A[j][k];
D[i+T[j][fiu]][fiu] = max(D[i][j], max(D[i+T[j][fiu]][fiu], D[i+T[j][fiu]-1][fiu]));
}
}
freopen("amenzi.out", "w", stdout);
while (P--)
{
scanf("%d %d", &a, &b);
printf("%d\n", D[b][a]);
}
return 0;
}