Submission #2865775
Source Code Expand
def answer(field) field.each do |line| puts line.tr('x','.') end exit 0 end def isvalid(field) 8.times do |y| 8.times do |x| if field[y][x] == 'Q' (-7..7).each do |i| next if i == 0 return false if 0 <= x+i && field[y][x+i] == 'Q' return false if 0 <= y+i && field[y+i] && field[y+i][x] == 'Q' return false if 0 <= y+i && 0 <= x+i && field[y+i] && field[y+i][x+i] == 'Q' return false if 0 <= y+i && 0 <= x-i && field[y+i] && field[y+i][x-i] == 'Q' end end end end return true end def update(field) 8.times do |y| 8.times do |x| if field[y][x] == 'Q' (-7..7).each do |i| field[y][x+i] = 'x' if 0 <= x+i && field[y][x+i] == '.' field[y+i][x] = 'x' if 0 <= y+i && field[y+i] && field[y+i][x] == '.' field[y+i][x+i] = 'x' if 0 <= y+i && 0 <= x+i && field[y+i] && field[y+i][x+i] == '.' field[y+i][x-i] = 'x' if 0 <= y+i && 0 <= x-i && field[y+i] && field[y+i][x-i] == '.' end end end end end def solve(field, qcnt) answer(field) if qcnt == 8 8.times do |y| 8.times do |x| if field[y][x] == '.' new_field = field.map{|e|e.clone} new_field[y][x] = 'Q' update(new_field) solve(new_field, qcnt+1) end end end end @field = 8.times.map{gets.chomp} unless isvalid(@field) puts "No Answer" exit 0 end update(@field) solve(@field, 3) puts "No Answer"
Submission Info
Submission Time | |
---|---|
Task | C - パズルのお手伝い |
User | m_buyoh |
Language | Ruby (2.3.3) |
Score | 100 |
Code Size | 1801 Byte |
Status | AC |
Exec Time | 89 ms |
Memory | 2172 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 00_sample1.txt, 00_sample2.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 01_rnd_20.txt, 01_rnd_21.txt, 01_rnd_22.txt, 01_rnd_23.txt, 01_rnd_24.txt, 01_rnd_25.txt, 01_rnd_26.txt, 01_rnd_27.txt, 01_rnd_28.txt, 01_rnd_29.txt, 01_rnd_30.txt, 01_rnd_31.txt, 01_rnd_32.txt, 01_rnd_33.txt, 01_rnd_34.txt, 01_rnd_35.txt, 01_rnd_36.txt, 01_rnd_37.txt, 01_rnd_38.txt, 01_rnd_39.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample1.txt | AC | 10 ms | 1916 KB |
00_sample2.txt | AC | 7 ms | 1788 KB |
01_rnd_00.txt | AC | 57 ms | 2044 KB |
01_rnd_01.txt | AC | 9 ms | 1916 KB |
01_rnd_02.txt | AC | 7 ms | 1788 KB |
01_rnd_03.txt | AC | 58 ms | 2044 KB |
01_rnd_04.txt | AC | 7 ms | 1788 KB |
01_rnd_05.txt | AC | 54 ms | 2044 KB |
01_rnd_06.txt | AC | 7 ms | 1788 KB |
01_rnd_07.txt | AC | 7 ms | 1788 KB |
01_rnd_08.txt | AC | 7 ms | 1788 KB |
01_rnd_09.txt | AC | 7 ms | 1788 KB |
01_rnd_10.txt | AC | 7 ms | 1788 KB |
01_rnd_11.txt | AC | 7 ms | 1788 KB |
01_rnd_12.txt | AC | 7 ms | 1788 KB |
01_rnd_13.txt | AC | 17 ms | 2172 KB |
01_rnd_14.txt | AC | 7 ms | 1788 KB |
01_rnd_15.txt | AC | 7 ms | 1788 KB |
01_rnd_16.txt | AC | 7 ms | 1788 KB |
01_rnd_17.txt | AC | 7 ms | 1788 KB |
01_rnd_18.txt | AC | 8 ms | 1788 KB |
01_rnd_19.txt | AC | 8 ms | 1788 KB |
01_rnd_20.txt | AC | 7 ms | 1788 KB |
01_rnd_21.txt | AC | 7 ms | 1788 KB |
01_rnd_22.txt | AC | 7 ms | 1788 KB |
01_rnd_23.txt | AC | 60 ms | 2044 KB |
01_rnd_24.txt | AC | 7 ms | 1788 KB |
01_rnd_25.txt | AC | 27 ms | 2172 KB |
01_rnd_26.txt | AC | 7 ms | 1788 KB |
01_rnd_27.txt | AC | 10 ms | 1916 KB |
01_rnd_28.txt | AC | 83 ms | 2172 KB |
01_rnd_29.txt | AC | 7 ms | 1788 KB |
01_rnd_30.txt | AC | 7 ms | 1788 KB |
01_rnd_31.txt | AC | 7 ms | 1788 KB |
01_rnd_32.txt | AC | 9 ms | 1916 KB |
01_rnd_33.txt | AC | 7 ms | 1788 KB |
01_rnd_34.txt | AC | 7 ms | 1788 KB |
01_rnd_35.txt | AC | 7 ms | 1788 KB |
01_rnd_36.txt | AC | 7 ms | 1788 KB |
01_rnd_37.txt | AC | 7 ms | 1788 KB |
01_rnd_38.txt | AC | 55 ms | 2172 KB |
01_rnd_39.txt | AC | 89 ms | 2044 KB |