Advertisement
Guest User

Untitled

a guest
May 27th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. // O(n*log(n)), drvo struktura e redundantna, max1D range sum e sufficient
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. struct coek
  7. {
  8. int time;
  9. int val;
  10.  
  11. };
  12.  
  13. typedef struct coek coek;
  14.  
  15. int sporedi( const void* prv, const void* vtor)
  16. {
  17. return( ((coek*)prv)->time - ((coek*)vtor)->time );
  18. }
  19.  
  20. int main()
  21. {
  22. int n, h, m, remain, sum, izlez;
  23. char t;
  24. scanf("%d", &n);
  25. coek vreminja[2*n];
  26.  
  27. for(int i = 0; i < 2*n; i+=2)
  28. {
  29. scanf("%d", &h);
  30. scanf("%c", &t);
  31. scanf("%d", &m);
  32. scanf("%d", &remain);
  33.  
  34. /*printf("h:%d\n", h);
  35. printf("m:%d\n", m);
  36. printf("r:%d\n", remain);*/
  37.  
  38. sum = 60 * h + m;
  39.  
  40. vreminja[i].time = sum;
  41. vreminja[i].val = 1;
  42.  
  43. vreminja[i+1].time = sum + remain;
  44. vreminja[i+1].val = -1;
  45. }
  46.  
  47. qsort((void*)vreminja, 2*n, sizeof(coek), sporedi);
  48.  
  49. sum = 0;
  50. for(int i = 0; i < 2*n; i++)
  51. {
  52. //printf("%d ", vreminja[i].time);
  53. if(sum < 0)
  54. sum = 0;
  55. sum += vreminja[i].val;
  56. if(sum > izlez)
  57. izlez = sum;
  58. }
  59.  
  60. printf("%d\n", izlez);
  61. return(0);
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement