Submission #47031545


Source Code Expand

N = gets.to_i
R = gets.chomp.chars
C = gets.chomp.chars
G = Array.new(N){[nil]*N}
OK = lambda{
#puts G.map{|r| r*'' }*"\n","\n"
	R.zip(G).all?{|a,r|
		next if 'ABC'.chars.any?{|b| 1<r.count(b) }
		if c = r.index(a)
			c+2<N && r[0...c].all?{|b| ! b || b==?. }
		else
			c = r.index{|b| b!=?. } and r[c].nil?
		end
	}
	C.zip(G.transpose).all?{|a,c|
		next if 'ABC'.chars.any?{|b| 1<c.count(b) }
		if r = c.index(a)
			r+2<N && c[0...r].all?{|b| ! b || b==?. }
		else
			r = c.index{|b| b!=?. } and c[r].nil?
		end
	}
}
F = lambda{|i|
	next true if i==N
	r = G[i]
	a = R[i]
	b,c = 'ABC'.chars-[a]
	next (0..N-3).find{|c1|
		r.fill nil
		r.fill ?.,0...c1
		r[c1] = a
		next OK[] && [*c1+1..N-1].permutation(2).any?{|c2,c3|
			r.fill ?.,c1+1..N-1
			r[c2] = b
			r[c3] = c
			OK[] && F[i+1]
		} || ! r.fill(nil)
	}
}
if F[0]
	puts 'Yes',G.map{|r| r*'' }
else
	puts 'No'
end

Submission Info

Submission Time
Task D - ABC Puzzle
User ds14050
Language Ruby (ruby 3.2.2)
Score 450
Code Size 915 Byte
Status AC
Exec Time 51 ms
Memory 17632 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 450 / 450
Status
AC × 2
AC × 62
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt
Case Name Status Exec Time Memory
sample_01.txt AC 50 ms 17580 KiB
sample_02.txt AC 44 ms 17220 KiB
test_01.txt AC 44 ms 17128 KiB
test_02.txt AC 44 ms 17072 KiB
test_03.txt AC 43 ms 17092 KiB
test_04.txt AC 44 ms 17144 KiB
test_05.txt AC 44 ms 17312 KiB
test_06.txt AC 45 ms 17208 KiB
test_07.txt AC 44 ms 17276 KiB
test_08.txt AC 44 ms 17228 KiB
test_09.txt AC 44 ms 17288 KiB
test_10.txt AC 44 ms 17168 KiB
test_11.txt AC 43 ms 17320 KiB
test_12.txt AC 46 ms 17380 KiB
test_13.txt AC 45 ms 17572 KiB
test_14.txt AC 46 ms 17504 KiB
test_15.txt AC 46 ms 17168 KiB
test_16.txt AC 46 ms 17476 KiB
test_17.txt AC 46 ms 17428 KiB
test_18.txt AC 46 ms 17368 KiB
test_19.txt AC 46 ms 17452 KiB
test_20.txt AC 45 ms 17468 KiB
test_21.txt AC 45 ms 17480 KiB
test_22.txt AC 45 ms 17336 KiB
test_23.txt AC 49 ms 17268 KiB
test_24.txt AC 48 ms 17524 KiB
test_25.txt AC 46 ms 17488 KiB
test_26.txt AC 47 ms 17340 KiB
test_27.txt AC 48 ms 17472 KiB
test_28.txt AC 46 ms 17548 KiB
test_29.txt AC 51 ms 17428 KiB
test_30.txt AC 45 ms 17108 KiB
test_31.txt AC 44 ms 17136 KiB
test_32.txt AC 47 ms 17436 KiB
test_33.txt AC 46 ms 17320 KiB
test_34.txt AC 48 ms 17420 KiB
test_35.txt AC 51 ms 17488 KiB
test_36.txt AC 46 ms 17336 KiB
test_37.txt AC 47 ms 17500 KiB
test_38.txt AC 48 ms 17632 KiB
test_39.txt AC 49 ms 17564 KiB
test_40.txt AC 48 ms 17400 KiB
test_41.txt AC 44 ms 17360 KiB
test_42.txt AC 44 ms 17200 KiB
test_43.txt AC 45 ms 17324 KiB
test_44.txt AC 45 ms 17604 KiB
test_45.txt AC 45 ms 17392 KiB
test_46.txt AC 46 ms 17472 KiB
test_47.txt AC 46 ms 17560 KiB
test_48.txt AC 46 ms 17472 KiB
test_49.txt AC 47 ms 17360 KiB
test_50.txt AC 46 ms 17484 KiB
test_51.txt AC 44 ms 17192 KiB
test_52.txt AC 44 ms 17236 KiB
test_53.txt AC 45 ms 17360 KiB
test_54.txt AC 46 ms 17416 KiB
test_55.txt AC 46 ms 17488 KiB
test_56.txt AC 45 ms 17420 KiB
test_57.txt AC 46 ms 17400 KiB
test_58.txt AC 47 ms 17584 KiB
test_59.txt AC 47 ms 17384 KiB
test_60.txt AC 46 ms 17484 KiB