UVa 362

From Algorithmist
Jump to navigation Jump to search
  1. include <stdio.h>

int main(){

   int tamanho = 0,
       data_set = 0;  
   
        scanf("%i",&tamanho);
        while(tamanho!=0) { 
             data_set ++;
             printf("Output for data set %i, %i bytes:\n", data_set, tamanho);
             int total_bytes_recebidos = 0, total_seg = 0, bytes_atuais = 0, contseg = 0;
             
             while(total_bytes_recebidos < tamanho){
                  int bytes_recebidos = 0, restante = 0, bytes_por_seg = 0, remaining = 0; 
                                       
                  while((total_bytes_recebidos < tamanho) && (contseg < 5)){                              
                       scanf("%i", &bytes_recebidos);   
                       total_bytes_recebidos = total_bytes_recebidos + bytes_recebidos;  
                       contseg++;
                       bytes_atuais = bytes_atuais + bytes_recebidos;                   
                  }
                  total_seg = total_seg + contseg;
                  
                  if ((contseg == 5) && (total_bytes_recebidos != tamanho)){         
                     if ((restante != tamanho - total_bytes_recebidos) && (bytes_atuais != 0)){        
                        restante = tamanho - total_bytes_recebidos;         
                        bytes_por_seg = bytes_atuais / contseg;
                        if (bytes_por_seg < 1){
                           float flutuante = 0;
                           int aux = 0;
                           flutuante = (float)bytes_atuais / contseg;
                           flutuante = flutuante * 10;
                           restante = restante * 10;
                           aux = (int)flutuante;
                           remaining = (int)restante / flutuante;
                           if (restante%aux == 0){         
                               printf("   Time remaining: %i seconds\n", remaining);
                           }
                           else{
                                remaining++;
                                printf("   Time remaining: %i seconds\n", remaining);
                           }
                           restante = restante /10;
                        }
                        else{
                             remaining = restante / bytes_por_seg;
                             if (restante%bytes_por_seg == 0){         
                                printf("   Time remaining: %i seconds\n", remaining);
                             }
                             else{
                                  remaining++;
                                  printf("   Time remaining: %i seconds\n", remaining);
                             }
                        }
                     }
                     else{
                          printf("   Time remaining: stalled\n");
                     }
                     contseg = 0;
                     bytes_atuais = 0;
                  }
             }    
             printf("Total time: %i seconds\n", total_seg);
             total_seg = 0;
             total_bytes_recebidos = 0;
             bytes_atuais = 0;
             contseg = 0;
             printf("\n");   
             scanf("%i",&tamanho);              
        }
   

return(0); }