int main() {

    int testcase,i,j,time,psngr;
    struct node *t, *x;


    scanf("%d",&testcase);
    for(i=1; i<=testcase; i++) {
        scanf("%d %d",&n,&m);
        time=0;

        t=(struct node *)malloc(sizeof *t);
        t->seq=1;
        x=t;
        t->passenger = -1;

        for(j=2; j<=m; j++) {
            t->next=(struct node *)malloc(sizeof *t);
            t=t->next;
            t->passenger = -1;
            t->seq=j;
        }
        t->next=x;

        for(j=20; j>=20-n+1; j--)
            queue[j]=20-j+1;
        head=20;
        tail=j;

        status_init();

        while(!(all_ridden())) {
            t=t->next;
            time+=5;
            if((t->passenger)>0) {
                psngr=t->passenger;
                status[psngr][t->seq]=1;
                t->passenger=remove_next(t->seq); /*Remember to return -1 if all have ridden*/
                if(!finished(psngr))
                    push_que(psngr);
            } else {
                t->passenger=remove_next(t->seq);
            }
        }

        printf("Case %d: %d\n",i,time);





    }

    return 0;
}
Esempio n. 2
0
void RouteListManipulator::set_to_head(RouteList *head, RouteList *p)
{
	RouteList *temp = head, *t;
	while(temp->get_next() != p)
	{
		temp = temp->get_next();
	}
	t = temp->get_next();
	remove_next(temp);
	t->set_next(head);
}