Advertisement
Guest User

second_solution

a guest
Jan 22nd, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.66 KB | None | 0 0
  1. /*
  2. Пример ввода:
  3. 333
  4. {04:20}{21:00}{12:15}{06:55}{02:00}{13:13}{23:59}{00:00}{15:15}{18:19}{03:03}{}
  5. Кол-во минут для каждого значения:
  6. 260; 1260; 735; 415; 120; 793; 1439; 0; 915; 1099; 183
  7. Правильный ответ: 7
  8. */
  9.  
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12. #include <time.h>
  13.  
  14. #define INCR 10
  15. #define HOURMIN 60
  16.  
  17. int main(){
  18.     int avl_t = INCR;
  19.     int now_t = 0;
  20.     int controll_time;
  21.     struct tm *time_arr = (struct tm *)malloc(avl_t * sizeof(struct tm));
  22.  
  23.     //Считывание
  24.     scanf("%i\n", &controll_time);
  25.     while(scanf("{%i:%i}", &time_arr[now_t].tm_hour, &time_arr[now_t].tm_min)){
  26.         now_t++;
  27.         if (now_t >= avl_t){
  28.             avl_t += INCR;
  29.             void *temp = realloc(time_arr, avl_t * sizeof(struct tm));
  30.             if (temp)
  31.                 time_arr = (struct tm *)temp;
  32.             else{
  33.                 printf("Ошибка перевыделения памяти!\n");
  34.                 return 0;
  35.             }
  36.             temp = NULL;
  37.         }
  38.     }
  39.  
  40.     //Обработка
  41.     int i;
  42.     int *mins_after_beg = (int *)malloc(now_t * sizeof(int)); //массив минут после начала суток для кажой пары
  43.     //вычисляем кол-во минут после начала суток
  44.     for (i = 0; i < now_t; i++){
  45.         mins_after_beg[i] = (HOURMIN * time_arr[i].tm_hour) + time_arr[i].tm_min;
  46.     }
  47.  
  48.     int k = 0; //счётчик искомых пар
  49.     for (i = 0; i < now_t; i++){
  50.         if (mins_after_beg[i] > controll_time)
  51.             k++;
  52.     }
  53.  
  54.     printf("%i\n", k);
  55.  
  56.     return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement