Chores
#include <stdio.h>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
long endTime[10002];
long m,n;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void Solve()
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
long cost,tt,max,i;//cost表示第i次所需的时间
long theFinal;//最后输出数
scanf("%ld%ld",&cost,&m);
theFinal=endTime[1] = cost;//第一个无可依赖
for(i = 2; i <= n; i++)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
scanf("%ld%ld",&cost,&m);
max = 0;
while(m--)//寻找此依赖的最大时间
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
scanf("%ld",&tt);
if(max < endTime[tt])
max = endTime[tt];
}
endTime[i] = max + cost;
if(endTime[i] > theFinal)theFinal = endTime[i];
}
printf("%ld\n",theFinal);
}
int main()
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
while(scanf("%ld",&n)!=EOF)
Solve();
return 0;
}