Submission #13454965
Source Code Expand
# Studying https://atcoder.jp/contests/abc168/tasks/abc168_f
# and https://atcoder.jp/contests/abc168/submissions/13393878
N,M = gets.split.map(&:to_i)
縦線,横線 = [[N,0,1,2],[M,1,2,0]].map{|n,*va|
n.times.map{ gets.split.map(&:to_i).values_at(*va) }.group_by{_3}
}
経線,緯線 = [縦線,横線].map{|l|
[-Float::INFINITY] + l.keys.sort + [Float::INFINITY]
}
右?,下? = [[縦線,経線,緯線],[横線,緯線,経線]].map{|l1,l2,l3|
Hash.new{|h,k|
h[k] = l1[l2[k+1]].inject([true]*(l3.size-2)){|a,(b,c,_)|
l = l3.bsearch_index{|_| b<=_ }
r = l3.bsearch_index{|_| c<_ }-1
next a.fill(false,l...r)
}
}
}
area = 0
cow = [経線,緯線].map{|l| l.bsearch_index{|_| 0<_ }-1 }
Q = [cow]
Qd = Array.new(経線.size-1){ [false]*(緯線.size-1) }
Qd[cow[0]][cow[1]] = true
until Q.empty?
横,縦 = Q.pop
area += (経線[横+1]-経線[横])*(緯線[縦+1]-緯線[縦])
break if area.infinite?
(Q << [横+1,縦]; Qd[横+1][縦] = true) if ! Qd[横+1][縦] && 右?[横][縦]
(Q << [横-1,縦]; Qd[横-1][縦] = true) if ! Qd[横-1][縦] && 右?[横-1][縦]
(Q << [横,縦+1]; Qd[横][縦+1] = true) if ! Qd[横][縦+1] && 下?[縦][横]
(Q << [横,縦-1]; Qd[横][縦-1] = true) if ! Qd[横][縦-1] && 下?[縦-1][横]
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 | 1336 Byte |
| Status | AC |
| Exec Time | 474 ms |
| Memory | 43092 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 | 50 ms | 14440 KiB |
| sample_02.txt | AC | 55 ms | 14400 KiB |
| sub1_01.txt | AC | 56 ms | 17044 KiB |
| sub1_02.txt | AC | 58 ms | 16748 KiB |
| sub1_03.txt | AC | 54 ms | 15008 KiB |
| sub1_04.txt | AC | 55 ms | 14656 KiB |
| sub1_05.txt | AC | 62 ms | 20028 KiB |
| sub1_06.txt | AC | 57 ms | 15336 KiB |
| sub1_07.txt | AC | 54 ms | 15704 KiB |
| sub1_08.txt | AC | 56 ms | 14472 KiB |
| sub1_09.txt | AC | 53 ms | 15420 KiB |
| sub1_10.txt | AC | 61 ms | 20300 KiB |
| sub1_11.txt | AC | 52 ms | 14456 KiB |
| sub1_12.txt | AC | 54 ms | 14620 KiB |
| sub1_13.txt | AC | 52 ms | 14456 KiB |
| sub1_14.txt | AC | 53 ms | 14356 KiB |
| sub1_15.txt | AC | 54 ms | 14236 KiB |
| sub1_16.txt | AC | 52 ms | 14268 KiB |
| sub1_17.txt | AC | 63 ms | 23556 KiB |
| sub1_18.txt | AC | 247 ms | 40600 KiB |
| sub1_19.txt | AC | 252 ms | 43092 KiB |
| sub1_20.txt | AC | 110 ms | 36416 KiB |
| sub1_21.txt | AC | 93 ms | 33140 KiB |
| sub1_22.txt | AC | 211 ms | 40236 KiB |
| sub1_23.txt | AC | 94 ms | 32788 KiB |
| sub1_24.txt | AC | 217 ms | 42368 KiB |
| sub1_25.txt | AC | 103 ms | 35840 KiB |
| sub1_26.txt | AC | 264 ms | 41136 KiB |
| sub1_27.txt | AC | 93 ms | 30152 KiB |
| sub1_28.txt | AC | 109 ms | 31036 KiB |
| sub1_29.txt | AC | 76 ms | 27224 KiB |
| sub1_30.txt | AC | 97 ms | 29380 KiB |
| sub1_31.txt | AC | 63 ms | 21972 KiB |
| sub1_32.txt | AC | 92 ms | 31276 KiB |
| sub1_33.txt | AC | 101 ms | 30688 KiB |
| sub1_34.txt | AC | 121 ms | 31696 KiB |
| sub1_35.txt | AC | 186 ms | 35852 KiB |
| sub1_36.txt | AC | 113 ms | 31796 KiB |
| sub1_37.txt | AC | 253 ms | 41868 KiB |
| sub1_38.txt | AC | 67 ms | 16424 KiB |
| sub1_39.txt | AC | 64 ms | 15112 KiB |
| sub1_40.txt | AC | 219 ms | 41116 KiB |
| sub1_41.txt | AC | 70 ms | 16536 KiB |
| sub1_42.txt | AC | 52 ms | 14352 KiB |
| sub1_43.txt | AC | 55 ms | 14348 KiB |
| sub1_44.txt | AC | 52 ms | 14268 KiB |
| sub1_45.txt | AC | 53 ms | 14236 KiB |
| sub1_46.txt | AC | 51 ms | 14296 KiB |
| sub1_47.txt | AC | 53 ms | 14680 KiB |
| sub1_48.txt | AC | 63 ms | 15480 KiB |
| sub1_49.txt | AC | 54 ms | 14808 KiB |
| sub1_50.txt | AC | 63 ms | 15888 KiB |
| sub1_51.txt | AC | 53 ms | 14764 KiB |
| sub1_52.txt | AC | 55 ms | 14668 KiB |
| sub1_53.txt | AC | 58 ms | 15756 KiB |
| sub1_54.txt | AC | 66 ms | 15696 KiB |
| sub1_55.txt | AC | 271 ms | 40588 KiB |
| sub1_56.txt | AC | 253 ms | 40564 KiB |
| sub1_57.txt | AC | 127 ms | 36700 KiB |
| sub1_58.txt | AC | 243 ms | 39820 KiB |
| sub1_59.txt | AC | 252 ms | 40208 KiB |
| sub1_60.txt | AC | 97 ms | 34360 KiB |
| sub1_61.txt | AC | 125 ms | 23816 KiB |
| sub1_62.txt | AC | 232 ms | 38512 KiB |
| sub1_63.txt | AC | 52 ms | 14380 KiB |
| sub1_64.txt | AC | 73 ms | 27116 KiB |
| sub1_65.txt | AC | 59 ms | 14784 KiB |
| sub1_66.txt | AC | 172 ms | 31260 KiB |
| sub1_67.txt | AC | 64 ms | 15756 KiB |
| sub1_68.txt | AC | 91 ms | 20040 KiB |
| sub1_69.txt | AC | 64 ms | 18428 KiB |
| sub1_70.txt | AC | 61 ms | 18404 KiB |
| sub1_71.txt | AC | 54 ms | 14428 KiB |
| sub1_72.txt | AC | 51 ms | 14224 KiB |
| sub1_73.txt | AC | 53 ms | 14308 KiB |
| sub1_74.txt | AC | 58 ms | 17144 KiB |
| sub1_75.txt | AC | 52 ms | 15068 KiB |
| sub1_76.txt | AC | 61 ms | 22636 KiB |
| sub1_77.txt | AC | 54 ms | 14452 KiB |
| sub1_78.txt | AC | 56 ms | 14508 KiB |
| sub1_79.txt | AC | 57 ms | 14368 KiB |
| sub1_80.txt | AC | 58 ms | 14348 KiB |
| sub1_81.txt | AC | 56 ms | 14476 KiB |
| sub1_82.txt | AC | 63 ms | 14428 KiB |
| sub1_83.txt | AC | 53 ms | 14312 KiB |
| sub1_84.txt | AC | 60 ms | 14472 KiB |
| sub1_85.txt | AC | 55 ms | 14672 KiB |
| sub1_86.txt | AC | 54 ms | 14448 KiB |
| sub1_87.txt | AC | 51 ms | 14328 KiB |
| sub1_88.txt | AC | 57 ms | 14344 KiB |
| sub1_89.txt | AC | 446 ms | 38452 KiB |
| sub1_90.txt | AC | 454 ms | 38276 KiB |
| sub1_91.txt | AC | 474 ms | 38468 KiB |
| sub1_92.txt | AC | 453 ms | 38316 KiB |
| sub1_93.txt | AC | 451 ms | 38164 KiB |
| sub1_94.txt | AC | 52 ms | 14176 KiB |