Submission #13406078


Source Code Expand

# Studying https://atcoder.jp/contests/abc168/tasks/abc168_f
#      and https://mobile.twitter.com/chokudai/status/1262023105888698369

N,M = gets.split.map(&:to_i)
縦線 = N.times.map{ gets.split.map(&:to_i) }
横線 = M.times.map{ gets.split.map(&:to_i) }

経線 = 縦線.map{|_,_,c| c }.uniq.sort
緯線 = 横線.map{|d,| d }.uniq.sort

GW = 経線.size*2+3 # INF ゾーンと壁で囲います(+4)。
GH = 緯線.size*2+3
GI = lambda{|横,縦|
	i = 経線.bsearch_index{|_| 横<=_ }||経線.size # 線分の端点の座標に対応する
	j = 緯線.bsearch_index{|_| 縦<=_ }||緯線.size
	i1 = 経線[i] != 横 ? 1 : 0 # 線分間の座標に対応するための補正
	j1 = 緯線[j] != 縦 ? 1 : 0
	next (2+2*j-j1)*GW+(2+2*i-i1)
}
下 = lambda{|i|
	(i/GW+1)/2*2*GW + i%GW
}
上 = lambda{|i|
	i/GW/2*2*GW + i%GW
}
右 = lambda{|i|
	(i+1)/2*2
}
左 = lambda{|i|
	i/2*2
}
Grid = lambda{|g|
	縦線.each{|a,b,c|
		下[GI[c,a]].step(上[GI[c,b]], GW){|i|
			g[i] = '0'
		}
	}
	i = 0
	GH.times{
		g[i] = g[i+GW-1] = '0'
		i += GW
	}

	横線.each{|d,e,f|
		右[GI[e,d]].upto(左[GI[f,d]]){|i|
			g[i] = '0'
		}
	}
	0.upto(GW-1){|i|
		g[i] = g[-1-i] = '0'
	}

	return g
}['1'*(GW*GH)]
Area = lambda{|a|
	(GW+1).upto(GW+GW-2){|i|
		a[i] = a[-1-i] = Float::INFINITY
	}
	i = GW+1
	(GH-2).times{
		a[i] = a[i+GW-3] = Float::INFINITY
		i += GW
	}

	heights = 緯線.each_cons(2).map{|y,z| z-y }
	widths = 経線.each_cons(2).map{|y,z| z-y }
	j = (GW+1)*3
	heights.each{|h|
		i = 0
		widths.each{|w|
			a[j+i] = h*w
			i += 2
		}
		j += GW+GW
	}

	return a
}[[0]*(GW*GH)]

area = 0
cow = GI[0,0]
Grid[cow] = '0'
Q = [cow]
while at = Q.shift
	area += Area[at]
	[-1,1,GW,-GW].each{|mv|
		next if Grid[at+mv] == '0'
		Grid[at+mv] = '0'
		Q << at+mv
	}
end

puts(area.finite? ? area : 'INF')

Submission Info

Submission Time
Task F - . (Single Dot)
User ds14050
Language Ruby (2.7.1)
Score 600
Code Size 1879 Byte
Status AC
Exec Time 2489 ms
Memory 50112 KiB

Judge Result

Set Name Sample Subtask1
Score / Max Score 0 / 0 600 / 600
Status
AC × 2
AC × 96
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
Subtask1 sample_01.txt, sample_02.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt, sub1_24.txt, sub1_25.txt, sub1_26.txt, sub1_27.txt, sub1_28.txt, sub1_29.txt, sub1_30.txt, sub1_31.txt, sub1_32.txt, sub1_33.txt, sub1_34.txt, sub1_35.txt, sub1_36.txt, sub1_37.txt, sub1_38.txt, sub1_39.txt, sub1_40.txt, sub1_41.txt, sub1_42.txt, sub1_43.txt, sub1_44.txt, sub1_45.txt, sub1_46.txt, sub1_47.txt, sub1_48.txt, sub1_49.txt, sub1_50.txt, sub1_51.txt, sub1_52.txt, sub1_53.txt, sub1_54.txt, sub1_55.txt, sub1_56.txt, sub1_57.txt, sub1_58.txt, sub1_59.txt, sub1_60.txt, sub1_61.txt, sub1_62.txt, sub1_63.txt, sub1_64.txt, sub1_65.txt, sub1_66.txt, sub1_67.txt, sub1_68.txt, sub1_69.txt, sub1_70.txt, sub1_71.txt, sub1_72.txt, sub1_73.txt, sub1_74.txt, sub1_75.txt, sub1_76.txt, sub1_77.txt, sub1_78.txt, sub1_79.txt, sub1_80.txt, sub1_81.txt, sub1_82.txt, sub1_83.txt, sub1_84.txt, sub1_85.txt, sub1_86.txt, sub1_87.txt, sub1_88.txt, sub1_89.txt, sub1_90.txt, sub1_91.txt, sub1_92.txt, sub1_93.txt, sub1_94.txt
Case Name Status Exec Time Memory
sample_01.txt AC 53 ms 14428 KiB
sample_02.txt AC 51 ms 14496 KiB
sub1_01.txt AC 113 ms 25360 KiB
sub1_02.txt AC 89 ms 19968 KiB
sub1_03.txt AC 74 ms 18096 KiB
sub1_04.txt AC 68 ms 16096 KiB
sub1_05.txt AC 189 ms 36124 KiB
sub1_06.txt AC 82 ms 18712 KiB
sub1_07.txt AC 97 ms 20020 KiB
sub1_08.txt AC 58 ms 14876 KiB
sub1_09.txt AC 90 ms 19324 KiB
sub1_10.txt AC 254 ms 40964 KiB
sub1_11.txt AC 57 ms 14604 KiB
sub1_12.txt AC 57 ms 14432 KiB
sub1_13.txt AC 56 ms 14280 KiB
sub1_14.txt AC 52 ms 14524 KiB
sub1_15.txt AC 54 ms 14380 KiB
sub1_16.txt AC 52 ms 14344 KiB
sub1_17.txt AC 173 ms 49872 KiB
sub1_18.txt AC 1612 ms 49560 KiB
sub1_19.txt AC 1664 ms 49152 KiB
sub1_20.txt AC 2400 ms 49804 KiB
sub1_21.txt AC 2039 ms 47080 KiB
sub1_22.txt AC 1265 ms 48832 KiB
sub1_23.txt AC 2079 ms 49408 KiB
sub1_24.txt AC 1326 ms 49936 KiB
sub1_25.txt AC 2303 ms 49736 KiB
sub1_26.txt AC 1768 ms 50112 KiB
sub1_27.txt AC 381 ms 45320 KiB
sub1_28.txt AC 477 ms 45612 KiB
sub1_29.txt AC 243 ms 46324 KiB
sub1_30.txt AC 369 ms 46036 KiB
sub1_31.txt AC 149 ms 45956 KiB
sub1_32.txt AC 2113 ms 44840 KiB
sub1_33.txt AC 472 ms 46148 KiB
sub1_34.txt AC 562 ms 45844 KiB
sub1_35.txt AC 1130 ms 45336 KiB
sub1_36.txt AC 550 ms 46192 KiB
sub1_37.txt AC 1869 ms 49344 KiB
sub1_38.txt AC 161 ms 17048 KiB
sub1_39.txt AC 110 ms 15168 KiB
sub1_40.txt AC 1474 ms 50088 KiB
sub1_41.txt AC 177 ms 17000 KiB
sub1_42.txt AC 52 ms 14452 KiB
sub1_43.txt AC 55 ms 14484 KiB
sub1_44.txt AC 53 ms 14376 KiB
sub1_45.txt AC 54 ms 14588 KiB
sub1_46.txt AC 52 ms 14280 KiB
sub1_47.txt AC 139 ms 15848 KiB
sub1_48.txt AC 112 ms 15780 KiB
sub1_49.txt AC 141 ms 15932 KiB
sub1_50.txt AC 117 ms 15952 KiB
sub1_51.txt AC 150 ms 15808 KiB
sub1_52.txt AC 138 ms 15788 KiB
sub1_53.txt AC 142 ms 15624 KiB
sub1_54.txt AC 126 ms 15828 KiB
sub1_55.txt AC 1793 ms 49748 KiB
sub1_56.txt AC 1596 ms 49784 KiB
sub1_57.txt AC 2489 ms 49668 KiB
sub1_58.txt AC 1507 ms 49772 KiB
sub1_59.txt AC 1556 ms 49376 KiB
sub1_60.txt AC 2348 ms 49664 KiB
sub1_61.txt AC 638 ms 25916 KiB
sub1_62.txt AC 1642 ms 46604 KiB
sub1_63.txt AC 61 ms 14564 KiB
sub1_64.txt AC 1597 ms 37456 KiB
sub1_65.txt AC 89 ms 15200 KiB
sub1_66.txt AC 1053 ms 34320 KiB
sub1_67.txt AC 122 ms 15920 KiB
sub1_68.txt AC 375 ms 20864 KiB
sub1_69.txt AC 639 ms 22120 KiB
sub1_70.txt AC 483 ms 22428 KiB
sub1_71.txt AC 56 ms 14336 KiB
sub1_72.txt AC 51 ms 14280 KiB
sub1_73.txt AC 54 ms 14464 KiB
sub1_74.txt AC 214 ms 26520 KiB
sub1_75.txt AC 93 ms 17336 KiB
sub1_76.txt AC 507 ms 49876 KiB
sub1_77.txt AC 56 ms 14480 KiB
sub1_78.txt AC 57 ms 14464 KiB
sub1_79.txt AC 60 ms 14404 KiB
sub1_80.txt AC 60 ms 14512 KiB
sub1_81.txt AC 64 ms 14684 KiB
sub1_82.txt AC 64 ms 14520 KiB
sub1_83.txt AC 54 ms 14416 KiB
sub1_84.txt AC 60 ms 14636 KiB
sub1_85.txt AC 68 ms 14636 KiB
sub1_86.txt AC 51 ms 14432 KiB
sub1_87.txt AC 54 ms 14332 KiB
sub1_88.txt AC 55 ms 14436 KiB
sub1_89.txt AC 2183 ms 49980 KiB
sub1_90.txt AC 2399 ms 49660 KiB
sub1_91.txt AC 2231 ms 49952 KiB
sub1_92.txt AC 2215 ms 50112 KiB
sub1_93.txt AC 2196 ms 49788 KiB
sub1_94.txt AC 54 ms 14264 KiB