Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.File
- fun main() {
- val reader = File("vase.in").bufferedReader()
- val (n, t) = reader.readLine().trim().split(' ').map { it.toInt() }
- Array(n) { Triple(0, 0, 0) }.let { arr ->
- var (sum, minus) = (0 until n).foldIndexed(0L to 0L) { ind, (ss, ms), _ ->
- val (f, s) = reader.readLine().trim().split(' ').map { it.toInt() }
- arr[ind] = Triple(
- f,
- when (f) {
- 0 -> 0
- else -> s
- },
- when {
- s == 0 || f == 0 -> t + 2
- else -> f / s + if (f % s == 0) 0 else 1
- }
- )
- ss + f to ms + arr[ind].second
- }
- arr.sortBy { it.third }
- var move = 0
- File("vase.out").printWriter().use { out ->
- out.appendLine("$sum")
- (1..t).forEach {
- if (sum != 0L) {
- while (move < arr.size && it == arr[move].third) {
- sum -= when {
- arr[move].first % arr[move].second == 0 -> arr[move].second
- else -> arr[move].first % arr[move].second
- }
- minus -= arr[move].second
- move++
- }
- sum -= minus
- }
- out.appendLine("$sum")
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement