Submission #4027103
Source Code Expand
import java.io.{InputStream, OutputStream, PrintStream} import java.util.Scanner import scala.annotation.tailrec object Main { def main(args: Array[String]): Unit = { val solver = new Solver(System.in, System.out) solver.solve() } class Solver(in: InputStream, out: OutputStream) { lazy val input = new Scanner(in) lazy val output = new PrintStream(out) def solve(): Unit = { val Array(n, k) = input.nextLine().split(" ").map(_.toInt) val xs = input.nextLine().split(" ").map(_.toInt) val lefts = xs.filter(_ <= 0).map(_ * -1).reverse val rights = xs.filter(_ >= 0) val costs = Seq( solve(lefts, rights, k), if (lefts.length >= k) lefts(k-1) else Int.MaxValue, if (rights.length >= k) rights(k-1) else Int.MaxValue ) output.println(costs.min) } def solve(lefts: Array[Int], rights: Array[Int], k: Int): Int = { var leftPos, rightPos = 0 var leftIdx, rightIdx = 0 var foundCount = 0 if (rights.headOption.contains(0)) { leftIdx += 1 rightIdx += 1 foundCount += 1 } if (foundCount >= k) { return 0 } 1.to(Math.pow(10, 8).toInt).foreach { i => if (rights.applyOrElse(rightIdx, (_: Int) => -1) == i) { rightPos = i rightIdx += 1 foundCount += 1 } if (foundCount >= k) { val min = leftPos.min(rightPos) val max = leftPos.max(rightPos) return min * 2 + max } if (lefts.applyOrElse(leftIdx, (_: Int) => -1) == i) { leftPos = i leftIdx += 1 foundCount += 1 } if (foundCount >= k) { val min = leftPos.min(rightPos) val max = leftPos.max(rightPos) return min * 2 + max } } 0 } @tailrec final def gcd(m: Int, n: Int): Int = { val (x, y) = if (m > n) (m, n) else (n, m) if (y != 0) gcd(y, x % y) else x } } }
Submission Info
Submission Time | |
---|---|
Task | C - Candles |
User | lambdasawa |
Language | Scala (2.11.7) |
Score | 0 |
Code Size | 2112 Byte |
Status | WA |
Exec Time | 1952 ms |
Memory | 122364 KB |
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 300 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt |
All | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_00.txt | AC | 360 ms | 25664 KB |
0_01.txt | AC | 340 ms | 25260 KB |
0_02.txt | AC | 338 ms | 25548 KB |
0_03.txt | AC | 340 ms | 25552 KB |
1_00.txt | AC | 1590 ms | 120436 KB |
1_01.txt | WA | 1242 ms | 115808 KB |
1_02.txt | AC | 1952 ms | 121356 KB |
1_03.txt | AC | 1361 ms | 122364 KB |
1_04.txt | AC | 1922 ms | 122304 KB |
1_05.txt | AC | 1316 ms | 119828 KB |
1_06.txt | WA | 1391 ms | 122176 KB |
1_07.txt | WA | 1399 ms | 121984 KB |