結果

問題 No.628 Tagの勢い
コンテスト
ユーザー yumechi
提出日時 2021-03-04 02:27:04
言語 Scala(Beta)
(3.8.1)
コンパイル:
scalac _filename_
実行:
java -cp .:/home/linuxbrew/.linuxbrew/Cellar/scala/3.8.1/libexec/maven2/org/scala-lang/scala3-library_3/3.8.1/scala3-library_3-3.8.1.jar:/home/linuxbrew/.linuxbrew/Cellar/scala/3.8.1/libexec/maven2/org/scala-lang/scala-library/3.8.1/scala-library-3.8.1.jar _class_
結果
AC  
実行時間 895 ms / 2,000 ms
コード長 771 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 11,317 ms
コンパイル使用メモリ 278,092 KB
実行使用メモリ 70,892 KB
最終ジャッジ日時 2026-03-09 19:15:54
合計ジャッジ時間 24,654 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 19
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import java.util.Scanner

object Main extends App {
  val sc = new Scanner(System.in)

  val n = sc.nextInt
  var mp = Map.empty[String, Int]
  for(_ <- 0 until n) {
    val _ = sc.nextInt
    val m = sc.nextInt
    val s = sc.nextInt
    for(t <- Array.fill(m)(sc.next)) {
      val cs = mp.getOrElse(t, 0)
      mp += t -> (cs + s)
    }
  }
  val ta = mp.map(elem => Array(elem._1, elem._2)).toSeq
  val arr = ta.sortWith((t1, t2) => {
    if(t1(1).toString.toInt > t2(1).toString.toInt) {
      true
    } else if(t1(1).toString.toInt == t2(1).toString.toInt
              && t2(0).toString >= t1(0).toString) {
      true
    } else {
      false
    }
  })
  val limit = math.min(10, arr.length)
  for(i <- 0 until limit) {
    println(arr(i).mkString(" "))
  }
}

0