Submission #69078973


Source Code Expand

N,Q = gets.split.map(&:to_i)
G = N.times.map{ gets.chomp.chars.map{|c| c==?. } }
H = G.each_cons(2).map{|r0,r1|
	r0.each_cons(2).zip(r1.each_cons(2)).map{|(c0,c1),(c2,c3)|
		c0&&c1&&c2&&c3 ? 1 : 0
	}<<0
}<<[0]*N
S = H.inject([[0]*(N+1)]){|ss,r|
	ss<<ss[-1].zip(r.inject([0]){|s,c| s<<s[-1]+c }).map(&:sum)
}
SR = H.map{|r| r.inject([0]){|s,c| s<<s[-1]+c } }
SC = H.transpose.map{|c| c.inject([0]){|s,c| s<<s[-1]+c } }
puts Q.times.map{
	i0,i1,j0,j1 = gets.split.map(&:to_i)
	i0 -= 1
	j0 -= 1
	next S[i1][j1]-S[i1][j0]-S[i0][j1]+S[i0][j0]-
		(SR[i1-1][j1]-SR[i1-1][j0])-
		(SC[j1-1][i1]-SC[j1-1][i0])+
		H[i1-1][j1-1]
}

Submission Info

Submission Time
Task A - 2x2 Erasing
User ds14050
Language Ruby (ruby 3.2.2)
Score 400
Code Size 640 Byte
Status AC
Exec Time 662 ms
Memory 38260 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 2
AC × 28
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_handmade_00.txt, 01_handmade_01.txt, 01_handmade_02.txt, 01_handmade_03.txt, 01_handmade_04.txt, 02_random_00.txt, 02_random_01.txt, 02_random_02.txt, 02_random_03.txt, 02_random_04.txt, 02_random_05.txt, 02_random_06.txt, 02_random_07.txt, 02_random_08.txt, 02_random_09.txt, 02_random_10.txt, 02_random_11.txt, 02_random_12.txt, 02_random_13.txt, 02_random_14.txt, 02_random_15.txt, 02_random_16.txt, 02_random_17.txt, 02_random_18.txt, 02_random_19.txt, 02_random_20.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 46 ms 17328 KiB
00_sample_01.txt AC 47 ms 17444 KiB
01_handmade_00.txt AC 321 ms 20324 KiB
01_handmade_01.txt AC 567 ms 37836 KiB
01_handmade_02.txt AC 45 ms 17204 KiB
01_handmade_03.txt AC 625 ms 37956 KiB
01_handmade_04.txt AC 557 ms 37624 KiB
02_random_00.txt AC 543 ms 29520 KiB
02_random_01.txt AC 368 ms 22056 KiB
02_random_02.txt AC 615 ms 36004 KiB
02_random_03.txt AC 359 ms 21660 KiB
02_random_04.txt AC 324 ms 20244 KiB
02_random_05.txt AC 662 ms 38260 KiB
02_random_06.txt AC 647 ms 37812 KiB
02_random_07.txt AC 648 ms 37952 KiB
02_random_08.txt AC 648 ms 37604 KiB
02_random_09.txt AC 642 ms 37888 KiB
02_random_10.txt AC 553 ms 36936 KiB
02_random_11.txt AC 556 ms 37476 KiB
02_random_12.txt AC 558 ms 37648 KiB
02_random_13.txt AC 554 ms 37684 KiB
02_random_14.txt AC 547 ms 36656 KiB
02_random_15.txt AC 556 ms 37656 KiB
02_random_16.txt AC 551 ms 37660 KiB
02_random_17.txt AC 545 ms 36388 KiB
02_random_18.txt AC 547 ms 37748 KiB
02_random_19.txt AC 547 ms 37756 KiB
02_random_20.txt AC 641 ms 37928 KiB