結果

問題 No.452 横着者のビンゴゲーム
コンテスト
ユーザー t8m8⛄️
提出日時 2016-12-03 16:20:23
言語 Nim
(2.2.8)
コンパイル:
nim --nimcache=~ --hints:off -o:a.out -d:release cpp _filename_
実行:
./a.out
結果
AC  
実行時間 1,691 ms / 3,000 ms
コード長 2,948 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,560 ms
コンパイル使用メモリ 71,168 KB
実行使用メモリ 6,144 KB
最終ジャッジ日時 2026-03-19 11:24:17
合計ジャッジ時間 16,679 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 41
権限があれば一括ダウンロードができます
コンパイルメッセージ
/home/judge/data/code/Main.nim(15, 11) Warning: Deprecated since v0.20, use 'initHashSet'; initSet is deprecated [Deprecated]

ソースコード

diff #
raw source code

import strutils, sequtils, sets

when isMainModule:
  var
    tmp = stdin.readLine.split.map(parseInt)
    (n, m) = (tmp[0], tmp[1])
    a = newSeqWith(m, newSeqWith(n, newSeq[int](n)))

  for i in 0..m-1:
    for j in 0..n-1:
      a[i][j] = stdin.readLine.split.map(parseInt)

  var
    min = 1 shl 30
    cnt = initSet[int]()

  for i in 0..m-1:
    for j in i+1..m-1:
      # yoko * yoko
      for li in 0..n-1:
        for lj in 0..n-1:
          cnt.init
          for ci in 0..n-1:
            cnt.incl(a[i][li][ci])
          for cj in 0..n-1:
            cnt.incl(a[j][lj][cj])
          min = min(min, cnt.len)

      # tate * tate
      for ci in 0..n-1:
        for cj in 0..n-1:
          cnt.init
          for li in 0..n-1:
            cnt.incl(a[i][li][ci])
          for lj in 0..n-1:
            cnt.incl(a[j][lj][cj])
          min = min(min, cnt.len)

      # yoko * tate
      for li in 0..n-1:
        for cj in 0..n-1:
          cnt.init
          for ci in 0..n-1:
            cnt.incl(a[i][li][ci])
          for lj in 0..n-1:
            cnt.incl(a[j][lj][cj])
          min = min(min, cnt.len)

      # tate * yoko
      for ci in 0..n-1:
        for lj in 0..n-1:
          cnt.init
          for li in 0..n-1:
            cnt.incl(a[i][li][ci])
          for cj in 0..n-1:
            cnt.incl(a[j][lj][cj])
          min = min(min, cnt.len)

      # naname * naname
      for si in 0..1:
        for sj in 0..1:
          cnt.init
          for k in 0..n-1:
            if si == 0: cnt.incl(a[i][k][k])
            else: cnt.incl(a[i][k][n-k-1])
          for k in 0..n-1:
            if sj == 0: cnt.incl(a[j][k][k])
            else: cnt.incl(a[j][k][n-k-1])
          min = min(min, cnt.len)

      # yoko * naname
      for li in 0..n-1:
        for sj in 0..1:
          cnt.init
          for ci in 0..n-1:
            cnt.incl(a[i][li][ci])
          for k in 0..n-1:
            if sj == 0: cnt.incl(a[j][k][k])
            else: cnt.incl(a[j][k][n-k-1])
          min = min(min, cnt.len)

      # naname * yoko
      for si in 0..1:
        for lj in 0..n-1:
          cnt.init
          for k in 0..n-1:
            if si == 0: cnt.incl(a[i][k][k])
            else: cnt.incl(a[i][k][n-k-1])
          for cj in 0..n-1:
            cnt.incl(a[j][lj][cj])
          min = min(min, cnt.len)

      # tate * naname
      for ci in 0..n-1:
        for sj in 0..1:
          cnt.init
          for li in 0..n-1:
            cnt.incl(a[i][li][ci])
          for k in 0..n-1:
            if sj == 0: cnt.incl(a[j][k][k])
            else: cnt.incl(a[j][k][n-k-1])
          min = min(min, cnt.len)

      # naname * tate
      for si in 0..1:
        for cj in 0..n-1:
          cnt.init
          for k in 0..n-1:
            if si == 0: cnt.incl(a[i][k][k])
            else: cnt.incl(a[i][k][n-k-1])
          for lj in 0..n-1:
            cnt.incl(a[j][lj][cj])
          min = min(min, cnt.len)

  echo min - 1
0