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 |
|
|
| 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 |