Submission #7791038


Source Code Expand

N, M = gets.split.map(&:to_i)

Q, Ikr, FullBit = [], Hash.new{|h,k| h[k] = 100001 }, (1<<N)-1
master_key = 0
M.times{
	a, c = gets.to_i, gets.split.map(&:to_i)
	tkrbit = c.inject(0){|bit, tkr|
		bit | (1<<(tkr-1))
	}
	next if Ikr[tkrbit] < a
	master_key |= tkrbit
	Ikr[tkrbit] = a
	Q << ((a<<N)|tkrbit)
}
if master_key != FullBit
	p -1
	exit
end

Q.sort!
while lowest = Q.shift
	low_cost, low_tkrbit = lowest>>N, lowest&FullBit
	next if Ikr[low_tkrbit] < low_cost
	break if low_tkrbit == FullBit

	q, r = [], []
	while kg = Q.shift
		cost, tkrbit = kg>>N, kg&FullBit
		next if Ikr[tkrbit] < cost
		cost, tkrbit = low_cost+cost, low_tkrbit|tkrbit
		next if tkrbit == low_tkrbit
		q << kg
		next if Ikr[tkrbit] <= cost
		Ikr[tkrbit] = cost
		r << ((cost<<N)|tkrbit)
	end

	until q.empty?
		unless r.empty?
			Q << (q[0] < r[0] ? q : r).shift
		else
			Q.concat(q)
			q.clear
		end
	end
	Q.concat r
end
p Ikr[FullBit]

Submission Info

Submission Time
Task E - Get Everything
User ds14050
Language Ruby (2.3.3)
Score 500
Code Size 963 Byte
Status AC
Exec Time 565 ms
Memory 2684 KiB

Compile Error

./Main.rb:16: warning: ambiguous first argument; put parentheses or a space even after `-' operator

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 40
Set Name Test Cases
Sample 00-sample-00, 00-sample-01, 00-sample-02
All 00-sample-00, 00-sample-01, 00-sample-02, 01-handmade-03, 01-handmade-04, 01-handmade-05, 01-handmade-06, 01-handmade-07, 02-random-08, 02-random-09, 02-random-10, 02-random-11, 02-random-12, 02-random-13, 02-random-14, 02-random-15, 02-random-16, 02-random-17, 02-random-18, 02-random-19, 02-random-20, 02-random-21, 02-random-22, 02-random-23, 02-random-24, 02-random-25, 02-random-26, 02-random-27, 02-random-28, 02-random-29, 02-random-30, 02-random-31, 02-random-32, 02-random-33, 02-random-34, 02-random-35, 02-random-36, 02-random-37, 02-random-38, 02-random-39
Case Name Status Exec Time Memory
00-sample-00 AC 8 ms 1788 KiB
00-sample-01 AC 8 ms 1788 KiB
00-sample-02 AC 8 ms 1788 KiB
01-handmade-03 AC 11 ms 1916 KiB
01-handmade-04 AC 13 ms 1916 KiB
01-handmade-05 AC 45 ms 2044 KiB
01-handmade-06 AC 10 ms 1912 KiB
01-handmade-07 AC 15 ms 1912 KiB
02-random-08 AC 12 ms 1788 KiB
02-random-09 AC 10 ms 1788 KiB
02-random-10 AC 20 ms 1788 KiB
02-random-11 AC 9 ms 1788 KiB
02-random-12 AC 11 ms 1788 KiB
02-random-13 AC 9 ms 1788 KiB
02-random-14 AC 14 ms 1788 KiB
02-random-15 AC 16 ms 1912 KiB
02-random-16 AC 18 ms 1912 KiB
02-random-17 AC 14 ms 1788 KiB
02-random-18 AC 14 ms 1912 KiB
02-random-19 AC 86 ms 2044 KiB
02-random-20 AC 8 ms 1788 KiB
02-random-21 AC 32 ms 1912 KiB
02-random-22 AC 12 ms 1912 KiB
02-random-23 AC 13 ms 1788 KiB
02-random-24 AC 14 ms 1916 KiB
02-random-25 AC 22 ms 1916 KiB
02-random-26 AC 145 ms 2300 KiB
02-random-27 AC 26 ms 1916 KiB
02-random-28 AC 10 ms 1788 KiB
02-random-29 AC 43 ms 1912 KiB
02-random-30 AC 111 ms 2044 KiB
02-random-31 AC 14 ms 1912 KiB
02-random-32 AC 223 ms 2172 KiB
02-random-33 AC 144 ms 2044 KiB
02-random-34 AC 17 ms 1788 KiB
02-random-35 AC 15 ms 1916 KiB
02-random-36 AC 11 ms 1788 KiB
02-random-37 AC 15 ms 1916 KiB
02-random-38 AC 11 ms 1788 KiB
02-random-39 AC 565 ms 2684 KiB