Submission #58342271
Source Code Expand
Copy
class PQdef initialize@h = [] # max-heapenddef enq d@h << dup_heapenddef deqreturn unless @h[0]@h[0],@h[-1] = @h[-1],@h[0]d = @h.popdn_heap if @h[0]return dendprivatedef up_heapd = @h[i=@h.size-1]while 0<i
class PQ def initialize @h = [] # max-heap end def enq d @h << d up_heap end def deq return unless @h[0] @h[0],@h[-1] = @h[-1],@h[0] d = @h.pop dn_heap if @h[0] return d end private def up_heap d = @h[i=@h.size-1] while 0<i iP = (i-1)/2 break if d<=@h[iP] @h[i],i = @h[iP],iP end @h[i] = d end def dn_heap d = @h[i=0] z = @h.size until z <= iC = i+i+1 iC += 1 if iC+1<z && @h[iC]<@h[iC+1] break if @h[iC]<=d @h[i],i = @h[iC],iC end @h[i] = d end end (N,W),*WV = $<.map{|ln| ln.split.map(&:to_i) } W2V = [0]*(W+1) WV.group_by(&:shift).each{|dw,vs| kx = W/dw dvs = PQ.new vs.each{|v,| (0..kx).map{|k| k*v-k*k }.each_cons(2){|v0,v1| dvs.enq v1-v0 } } dvs = kx.times.map{ dvs.deq } W.downto(0){|w| v = W2V[w] dv = dvs.dup (w+dw).step(W,dw){|w| v += dv.shift W2V[w] = v if W2V[w]<v } } } p W2V.max
Submission Info
Submission Time | |
---|---|
Task | F - Knapsack with Diminishing Values |
User | ds14050 |
Language | Ruby (ruby 3.2.2) |
Score | 550 |
Code Size | 951 Byte |
Status | AC |
Exec Time | 2012 ms |
Memory | 104860 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 550 / 550 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
All | 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 02_handmade_01.txt, 02_handmade_02.txt, 02_handmade_03.txt, 02_handmade_04.txt, 02_handmade_05.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_01.txt | AC | 99 ms | 17124 KB |
00_sample_02.txt | AC | 46 ms | 17280 KB |
00_sample_03.txt | AC | 44 ms | 17268 KB |
01_random_01.txt | AC | 1531 ms | 103832 KB |
01_random_02.txt | AC | 1501 ms | 90964 KB |
01_random_03.txt | AC | 1520 ms | 104860 KB |
01_random_04.txt | AC | 1527 ms | 103524 KB |
01_random_05.txt | AC | 1498 ms | 90572 KB |
01_random_06.txt | AC | 73 ms | 19736 KB |
01_random_07.txt | AC | 710 ms | 36016 KB |
01_random_08.txt | AC | 810 ms | 34624 KB |
01_random_09.txt | AC | 1023 ms | 43104 KB |
01_random_10.txt | AC | 76 ms | 20128 KB |
01_random_11.txt | AC | 707 ms | 39044 KB |
01_random_12.txt | AC | 245 ms | 30936 KB |
01_random_13.txt | AC | 901 ms | 39300 KB |
01_random_14.txt | AC | 1028 ms | 45764 KB |
01_random_15.txt | AC | 651 ms | 38948 KB |
01_random_16.txt | AC | 130 ms | 20936 KB |
01_random_17.txt | AC | 238 ms | 28524 KB |
01_random_18.txt | AC | 581 ms | 17736 KB |
01_random_19.txt | AC | 1006 ms | 44104 KB |
01_random_20.txt | AC | 788 ms | 35284 KB |
01_random_21.txt | AC | 116 ms | 18664 KB |
01_random_22.txt | AC | 101 ms | 21360 KB |
01_random_23.txt | AC | 865 ms | 19380 KB |
01_random_24.txt | AC | 924 ms | 21732 KB |
01_random_25.txt | AC | 114 ms | 18948 KB |
01_random_26.txt | AC | 215 ms | 20420 KB |
01_random_27.txt | AC | 189 ms | 21536 KB |
01_random_28.txt | AC | 844 ms | 18980 KB |
01_random_29.txt | AC | 1021 ms | 21228 KB |
01_random_30.txt | AC | 401 ms | 18760 KB |
01_random_31.txt | AC | 255 ms | 18572 KB |
01_random_32.txt | AC | 118 ms | 21588 KB |
01_random_33.txt | AC | 876 ms | 17976 KB |
01_random_34.txt | AC | 980 ms | 21992 KB |
01_random_35.txt | AC | 86 ms | 19420 KB |
01_random_36.txt | AC | 576 ms | 17712 KB |
01_random_37.txt | AC | 1226 ms | 17884 KB |
01_random_38.txt | AC | 472 ms | 17736 KB |
01_random_39.txt | AC | 2012 ms | 17828 KB |
01_random_40.txt | AC | 514 ms | 17692 KB |
01_random_41.txt | AC | 377 ms | 17796 KB |
01_random_42.txt | AC | 86 ms | 17652 KB |
01_random_43.txt | AC | 1454 ms | 17896 KB |
01_random_44.txt | AC | 1893 ms | 17900 KB |
01_random_45.txt | AC | 345 ms | 17596 KB |
01_random_46.txt | AC | 422 ms | 17876 KB |
01_random_47.txt | AC | 198 ms | 17692 KB |
01_random_48.txt | AC | 158 ms | 17608 KB |
01_random_49.txt | AC | 1870 ms | 17984 KB |
01_random_50.txt | AC | 61 ms | 17576 KB |
02_handmade_01.txt | AC | 1899 ms | 17936 KB |
02_handmade_02.txt | AC | 121 ms | 25712 KB |
02_handmade_03.txt | AC | 100 ms | 24908 KB |
02_handmade_04.txt | AC | 319 ms | 19872 KB |
02_handmade_05.txt | AC | 64 ms | 17820 KB |