Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "stack.h"
- #include "queue.h"
- #include "mystruct.h"
- #define MAX_STATION_PASSENGER (8)
- #define MAX_CABLE_CAR_LOAD (300)
- void SwitchToLast( Queue*);
- int main(){
- int input;
- int weight = 0;
- NodePtr tmp = NULL;
- NodePtr q = NULL;
- NodePtr h = NULL;
- Queue queue = NULL;
- Queue holdqueue = NULL;
- while( scanf( "%d", &input) == 1 ){
- if( input == -1 ){
- while( queue != NULL ){
- while( queueSize( queue ) > 8 ){
- tmp = createQueueNode( queue->element );
- enqueue( tmp, &holdqueue );
- tmp = queue;
- queue = queue->next;
- tmp = NULL;
- //printf("END3\n");
- }
- while( weight < 300){
- if( isQueueEmpty( queue ) )
- break;
- weight += first( queue )->element;
- if( weight > 300 ){
- printf( "\n" );
- weight = 0;
- break;
- }
- printf( "%d ", first( queue )->element );
- dequeue( &queue );
- printf("\n");
- }
- if( isQueueEmpty( queue ) )
- break;
- SwitchToLast( &queue );
- while( queueSize( queue ) < 8 ){
- if( !isQueueEmpty( holdqueue ) ){
- tmp = createQueueNode( first( holdqueue )->element );
- enqueue( tmp, &queue);
- dequeue( &holdqueue );
- tmp = NULL;
- }
- else{
- break;
- }
- //printf("END1\n");
- }
- //printf("END\n");
- }
- puts("\n");
- continue;
- }
- if( queueSize( queue ) > 8 ){
- h = createNode( input );
- enqueue( h, &holdqueue);
- continue;
- }
- q = createNode( input );
- enqueue( q, &queue);
- }
- return 0;
- }
- void SwitchToLast( Queue* q){
- NodePtr tmp = createQueueNode( first( *q )->element );
- enqueue( tmp, q);
- dequeue( q );
- }
Add Comment
Please, Sign In to add comment