int c[1001];
short d[1001][1001];
int m(int y)
{
int x = 0;
for(int i = 1; i <= d[y][0]; ++i)
{
int t = d[d[y][i]][0]? m(d[y][i]): c[d[y][i]];
if (x < t) x = t;
}
d[y][0] = 0;
return c[y] += x;
}
int main()
{
int t, n, k, x, y;
scanf("%d", &t);
while(t--)
{
scanf("%d%d", &n, &k);
for(y = 1; y <= n; d[y][0] = 0, c[y++] = x)
scanf("%d", &x);
for(; k--; d[y][++d[y][0]] = x)
scanf("%d%d", &x, &y);
scanf("%d", &y);
printf("%d ", m(y));
}
}
헷. 삽질한거 있네 수정해야지.
와우
재사용조건도 넣어줘야겠구만~
@_@
ㅠ_ㅠ
↖(__)↗
뭐찐거야?
오키 맞았당.
키키 숏코딩 갈까봐 네이밍 대충해서 이모양.
꼬마야/ 아래 안드노예가 풀던 문제 짜본거양.
헐 저걸 어찌풀어 ㅋㅋ
문제 또박또박 잘 읽으면 걍 쉽게 풀라고 만들어 놓은 문젠디.