Submission #1117209


Source Code Expand

def turn(s)
  s == "S" ? "W" : "S"
end

def solve(n,list)
  ans = [['S','S'],
         ['S','W'],
         ['W','S'],
         ['W','W']]

  (2...n).each do |i|
    ans.each do |ans_seq|
      if (ans_seq[i-1] == "S" && list[i-1] == "o") ||
         (ans_seq[i-1] == "W" && list[i-1] == "x")
        ans_seq << ans_seq[i-2]
      else
        ans_seq << turn(ans_seq[i-2])
      end
    end
  end

  ans.each do |ans_seq|
    if (ans_seq[0] == "S" && list[0] == "o") ||
       (ans_seq[0] == "W" && list[0] == "x")
      next unless (ans_seq[1] == ans_seq[n-1])
    else
      next unless (ans_seq[1] != ans_seq[n-1])
    end

    if (ans_seq[n-1] == "S" && list[n-1] == "o") ||
       (ans_seq[n-1] == "W" && list[n-1] == "x")
      next unless (ans_seq[0] == ans_seq[n-2])
    else
      next unless (ans_seq[0] != ans_seq[n-2])
    end
    # solve
    puts ans_seq.join
    return
  end
  puts "-1"
end

def main
  n = gets.to_i
  list = gets.scan(/./)
  solve(n,list)
end

main

Submission Info

Submission Time
Task D - Menagerie
User lass1e
Language Ruby (2.3.3)
Score 500
Code Size 1031 Byte
Status AC
Exec Time 264 ms
Memory 28284 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 16
Set Name Test Cases
Sample 00_example_01.txt, 00_example_02.txt, 00_example_03.txt
All 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt
Case Name Status Exec Time Memory
00_example_01.txt AC 7 ms 1788 KB
00_example_02.txt AC 7 ms 1788 KB
00_example_03.txt AC 7 ms 1788 KB
01.txt AC 166 ms 16764 KB
02.txt AC 122 ms 15484 KB
03.txt AC 13 ms 2300 KB
04.txt AC 7 ms 1788 KB
05.txt AC 252 ms 27772 KB
06.txt AC 252 ms 27644 KB
07.txt AC 46 ms 6012 KB
08.txt AC 49 ms 6140 KB
09.txt AC 18 ms 2940 KB
10.txt AC 54 ms 6396 KB
11.txt AC 264 ms 28284 KB
12.txt AC 259 ms 28284 KB
13.txt AC 263 ms 28284 KB