Advertisement
paranid5

Bin

Feb 14th, 2021 (edited)
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.50 KB | None | 0 0
  1. import java.io.File
  2.  
  3. fun main() {
  4.     val reader = File("vase.in").bufferedReader()
  5.     val (n, t) = reader.readLine().trim().split(' ').map { it.toInt() }
  6.  
  7.     Array(n) { Triple(0, 0, 0) }.let { arr ->
  8.         var (sum, minus) = (0 until n).foldIndexed(0L to 0L) { ind, (ss, ms), _ ->
  9.             val (f, s) = reader.readLine().trim().split(' ').map { it.toInt() }
  10.  
  11.             arr[ind] = Triple(
  12.                 f,
  13.  
  14.                 when (f) {
  15.                     0 -> 0
  16.                     else -> s
  17.                 },
  18.  
  19.                 when {
  20.                     s == 0 || f == 0 -> t + 2
  21.                     else -> f / s + if (f % s == 0) 0 else 1
  22.                 }
  23.             )
  24.  
  25.             ss + f to ms + arr[ind].second
  26.         }
  27.  
  28.         arr.sortBy { it.third }
  29.  
  30.         var move = 0
  31.  
  32.         File("vase.out").printWriter().use { out ->
  33.             out.appendLine("$sum")
  34.  
  35.             (1..t).forEach {
  36.                 if (sum != 0L) {
  37.                     while (move < arr.size && it == arr[move].third) {
  38.                         sum -= when {
  39.                             arr[move].first % arr[move].second == 0 -> arr[move].second
  40.                             else -> arr[move].first % arr[move].second
  41.                         }
  42.  
  43.                         minus -= arr[move].second
  44.                         move++
  45.                     }
  46.  
  47.                     sum -= minus
  48.                 }
  49.  
  50.                 out.appendLine("$sum")
  51.             }
  52.         }
  53.     }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement