Advertisement
JorelFerreira00

Fila do Supermercado - uri

Jun 16th, 2019
499
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. typedef struct{
  6.     bool livre;
  7.     int tempo;
  8.     int cAtual;
  9.     int tempoAcaba;
  10. }funcionario;
  11.  
  12. int main (){
  13.     int n, m;
  14.     int *c;
  15.     funcionario *v;
  16.     int tempo = 0;
  17.     int proxCliente = 0;
  18.     int acabou;
  19.  
  20.     cin >> n;
  21.     cin >> m;
  22.  
  23.     v = new funcionario[n];
  24.     c = new int[m];
  25.  
  26.     for(int i=0; i<n; i++){
  27.         cin >> v[i].tempo;
  28.         v[i].livre = true;
  29.         v[i].cAtual = 0;
  30.         v[i].tempoAcaba = 0;
  31.     }
  32.     for(int i=0; i<m; i++){
  33.         cin >> c[i];
  34.     }
  35.  
  36.     while(true){
  37.         acabou = 0;
  38.         for(int i=0; i<n; i++){
  39.             if(v[i].livre){
  40.                 acabou++;
  41.             }else break;
  42.         }
  43.         if(acabou==n && proxCliente==m) break;
  44.  
  45.         tempo++;
  46.         for(int i=0; i<n; i++){
  47.             if(v[i].cAtual*v[i].tempo+v[i].tempoAcaba<=tempo){
  48.                 v[i].livre = true;
  49.                 v[i].tempoAcaba += v[i].cAtual*v[i].tempo;
  50.             }
  51.         }
  52.  
  53.         for(int i=0; i<n; i++){
  54.             if(v[i].livre && proxCliente<m){
  55.                 v[i].livre = false;
  56.                 v[i].cAtual = c[proxCliente];
  57.                 proxCliente++;
  58.             }
  59.         }
  60.  
  61.     }
  62.     cout << tempo << endl;
  63.  
  64.     delete[] v;
  65.     delete[] c;
  66.  
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement