Created
April 25, 2016 02:46
-
-
Save RicardoLara/8a3f9cfa0930b9c2ac3d8699ba5e8127 to your computer and use it in GitHub Desktop.
Para el ruteo de la pizza
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include<bits/stdc++.h> | |
| using namespace std; | |
| struct nodo{ | |
| int TME_h, TME_m; | |
| int t_pedidoh, t_pedidom; | |
| int t_recorrido; //solo mins | |
| }; | |
| struct colita{ | |
| nodo lugar[10]; | |
| int actual; | |
| colita(){ | |
| actual = 0; | |
| } | |
| void push(int h_p, int m_p){ | |
| lugar[actual].t_pedidoh = h_p; | |
| lugar[actual].t_pedidom = m_p; | |
| int soloMinutos = h_p * 60 + m_p; | |
| soloMinutos += 30; | |
| lugar[actual].TME_h = soloMinutos/60; | |
| lugar[actual].TME_m = soloMinutos - lugar[actual].TME_h * 60; | |
| lugar[actual].t_recorrido = rand() % 20 + 1; | |
| printf("HORA PEDIDO: %.2d:%.2d\n",lugar[actual].t_pedidoh,lugar[actual].t_pedidom); | |
| printf("HORA MAXIMA ENTREGA: %.2d:%.2d\n",lugar[actual].TME_h,lugar[actual].TME_m); | |
| printf("TIEMPO RECORRIDO: %.2d\n",lugar[actual].t_recorrido); | |
| actual++; | |
| } | |
| int size(){ return actual; } | |
| }; | |
| int main(){ | |
| colita moto; | |
| time_t now = time(0); | |
| tm *ltm = localtime(&now); | |
| cout << "Year: "<< 1900 + ltm->tm_year << endl; | |
| cout << "Month: "<< 1 + ltm->tm_mon<< endl; | |
| cout << "Day: "<< ltm->tm_mday << endl; | |
| cout << "Time: "<< 1 + ltm->tm_hour << ":"; | |
| cout << 1 + ltm->tm_min << ":"; | |
| cout << 1 + ltm->tm_sec << endl; | |
| int minuto = 1 + ltm->tm_min; | |
| int t_salida; | |
| //Una vez llegue el primer pedido, calculas el tiempo de la sucursal al punto de entrega | |
| //Se guarda en t_salida, y automaticamente el motoneto sale a la hora esperada para llegar a tiempo | |
| if(minuto >= 60) t_salida = 0; | |
| else t_salida = minuto+1; | |
| //Si llegué a este punto es porque YA ME LLEGÓ UN PEDIDO, entonces, lo encolo | |
| printf("Hora de orden: %d\n",1 + ltm->tm_hour); | |
| printf("Minuto de orden: %d\n",minuto); | |
| moto.push(1 + ltm->tm_hour, 1 + ltm->tm_min); | |
| printf("Minuto t_salida: %d\nPicale al enter: ",t_salida); | |
| getchar(); | |
| //Este ciclo es para recibir más pedidos, un MAX de los que quepan en la moto | |
| while(true){ | |
| now = time(0); | |
| tm *ltm = localtime(&now); | |
| //printf("Minuto actual: %d\n",1 + ltm->tm_min); | |
| //Si me llega otro pedido, lo encolo | |
| //Si llegas al punto donde ya te tienes que ir... Pues te vas | |
| if(1 + ltm->tm_min == t_salida){ | |
| printf("Hora de salir"); | |
| printf("En la moto hay %d pizzas\n",moto.size()); | |
| return 0; | |
| } | |
| } | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment