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; }
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); }