void maxValue(pAct acts,int *values,int *Trace)
{
for(int i=0;i<N;i++)
{
values[i]=acts[i].value;
Trace[i]=-1;
}
for(int i=0;i<N;i++)
{
for(int j=i+1;j<N;j++)
{
if(acts[j].start>=acts[i].end)
{
if(values[i]+acts[j].value>values[j])
{
values[j]=values[i]+acts[j].value;
Trace[j]=i;
}
}
}
}
}
void printTrace(int *Trace,int *values)
{
int max=0,k;
for(int i=0;i<N;i++)
{
if(values[i]>max)
{
max=values[i];
k=i;
}
}
while(k>=0)
{
printf("a[%d] ",k+1);
k=Trace[k];
}
}