Submission #2761383


Source Code Expand

import strutils, sequtils, math

proc getInt: int =
  var str = ""
  while true:
    let t = stdin.readChar
    if t.isDigit:
      str.add t
    elif t == '\r':
      discard
    else: return str.parseInt

let
  N = getInt()
  a, b = getInt() - 1
  M = getInt()
var
  arr = newSeqWith(N, newSeq[int](N))
  visited = newSeqWith(N, -1)
  visited2 = newSeqWith(N, newSeq[int]())
  path, Q = newSeq[int]()
  cnt = 1

for i in 0 ..< M:
  let x = getInt() - 1
  let y = getInt() - 1
  (arr[x][y], arr[y][x]) = (1, 1)

proc bfs =
  visited[a] = 0
  Q.add a

  while Q.len != 0:
    let n = Q[0]; Q.delete 0
    if n == b:
      path = visited2[n] & @[n]
      return

    for i in 0 ..< N:
      if arr[n][i] == 1:
        if visited[i] == -1:
          visited[i] = visited[n] + 1
          visited2[i] = visited2[n] & @[n]
          Q.add i

bfs()

for i in 1 ..< path.high:
  var bf = 0
  for j in 0 ..< N:
    if arr[path[i - 1]][j] == 1 and arr[j][path[i + 1]] == 1:
      bf += 1
  cnt = (cnt * bf) mod (10 ^ 9 + 7)

echo cnt

Submission Info

Submission Time
Task C - 正直者の高橋くん
User ToshiroYanagi
Language Nim (0.13.0)
Score 100
Code Size 1081 Byte
Status AC
Exec Time 1 ms
Memory 892 KB

Compile Error

Hint: system [Processing]
Hint: Main [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: sequtils [Processing]
Hint: math [Processing]
Hint: times [Processing]
Hint:  [Link]
Hint: operation successful (14855 lines compiled; 2.004 sec total; 16.163MB; Release Build) [SuccessX]

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 32
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 1 ms 256 KB
subtask0_sample_02.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 892 KB
subtask1_02.txt AC 1 ms 892 KB
subtask1_03.txt AC 1 ms 256 KB
subtask1_04.txt AC 1 ms 764 KB
subtask1_05.txt AC 1 ms 636 KB
subtask1_06.txt AC 1 ms 256 KB
subtask1_07.txt AC 1 ms 256 KB
subtask1_08.txt AC 1 ms 380 KB
subtask1_09.txt AC 1 ms 380 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt AC 1 ms 508 KB
subtask1_12.txt AC 1 ms 636 KB
subtask1_13.txt AC 1 ms 508 KB
subtask1_14.txt AC 1 ms 636 KB
subtask1_15.txt AC 1 ms 508 KB
subtask1_16.txt AC 1 ms 508 KB
subtask1_17.txt AC 1 ms 508 KB
subtask1_18.txt AC 1 ms 508 KB
subtask1_19.txt AC 1 ms 508 KB
subtask1_20.txt AC 1 ms 508 KB
subtask1_21.txt AC 1 ms 508 KB
subtask1_22.txt AC 1 ms 508 KB
subtask1_23.txt AC 1 ms 508 KB
subtask1_24.txt AC 1 ms 508 KB
subtask1_25.txt AC 1 ms 508 KB
subtask1_26.txt AC 1 ms 508 KB
subtask1_27.txt AC 1 ms 508 KB
subtask1_28.txt AC 1 ms 508 KB
subtask1_29.txt AC 1 ms 256 KB
subtask1_30.txt AC 1 ms 256 KB