Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.92 KB | None | 0 0
  1. def read_lines
  2.   array = []
  3.   i = gets.to_i
  4.   1.upto i do
  5.     line = gets.split(' ').map(&:to_i)
  6.     array.push(line)
  7.   end
  8.   array
  9. end
  10.  
  11. def linear_function(day1,hour1,min1,sec1,day2,hour2,min2,sec2)
  12.   day1 = day1 * 24 * 60 * 60
  13.   hour1 = hour1 * 60 * 60
  14.   min1 = min1 * 60
  15.   day2 = day2 * 24 * 60 * 60
  16.   hour2 = hour2 * 60 * 60
  17.   min2 = min2 * 60
  18.   time_difference = (day2 + hour2 + min2 + sec2) - (day1 + hour1 + min1 + sec1)
  19. end
  20.  
  21. def seconds_to_units(seconds)
  22.   '%d days, %d hours, %d minutes, %d seconds'
  23.   answer = [24,60,60].reverse.inject([seconds]) {|result, unitsize|
  24.     result[0,0] = result.shift.divmod(unitsize)
  25.     result
  26.   }
  27. end
  28.  
  29. def convert_to_s(array)
  30.   "(#{array.join(' ')})"
  31. end
  32.  
  33.  
  34. line = read_lines
  35. seconds = line.map{|i| linear_function(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7])}
  36. units = seconds.map{|n| seconds_to_units(n)}
  37. answer = units.map{|j| convert_to_s(j)}
  38. puts answer.join(' ')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement