Submission #33368195


Source Code Expand

(C,L,_),D,*Q = $<.map{|ln| ln.split.map(&:to_i) }
S = [nil]*C
I = C.times.group_by{|i| D[i] }
I.each{|d,is|
	s = is.cycle(2).each_cons(2).inject([0]){|s,(i0,i)|
		i += C if i<=i0
		s<<s[-1]+(i-i0-1)/L+1
	}
	is.each_with_index{|i,j|
		S[i] = s[j,is.size+1]
	}
}
#p S

puts Q.map{|d,f,t|
	f -= 1
	is = I[d]
	next 0 unless is
	i = is.bsearch{|i| f<=i }||is[0]
	t -= ((i-f)%C+L-1)/L if i!=f
	next 0 if t<1
	s,t = S[i],t-1
	c = s[-1]-s[0]
	c,t = t/c*is.size,s[0]+t%c
	j = s.bsearch_index{|s| t<s }-1
#p [c,j,s,t]
	next 1+c+j
}

Submission Info

Submission Time
Task M - Cafeteria
User ds14050
Language Ruby (2.7.1)
Score 6
Code Size 550 Byte
Status AC
Exec Time 423 ms
Memory 38368 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 6 / 6
Status
AC × 3
AC × 31
Set Name Test Cases
Sample s1.txt, s2.txt, s3.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, s1.txt, s2.txt, s3.txt
Case Name Status Exec Time Memory
01.txt AC 59 ms 13956 KiB
02.txt AC 62 ms 13968 KiB
03.txt AC 56 ms 13956 KiB
04.txt AC 58 ms 14096 KiB
05.txt AC 57 ms 14060 KiB
06.txt AC 56 ms 14124 KiB
07.txt AC 58 ms 14116 KiB
08.txt AC 58 ms 13936 KiB
09.txt AC 59 ms 13928 KiB
10.txt AC 60 ms 14060 KiB
11.txt AC 56 ms 14024 KiB
12.txt AC 138 ms 19188 KiB
13.txt AC 159 ms 22896 KiB
14.txt AC 198 ms 25448 KiB
15.txt AC 186 ms 21796 KiB
16.txt AC 126 ms 18608 KiB
17.txt AC 135 ms 18932 KiB
18.txt AC 273 ms 28324 KiB
19.txt AC 375 ms 38368 KiB
20.txt AC 175 ms 25756 KiB
21.txt AC 99 ms 16332 KiB
22.txt AC 394 ms 28440 KiB
23.txt AC 330 ms 22668 KiB
24.txt AC 327 ms 22592 KiB
25.txt AC 381 ms 26332 KiB
26.txt AC 423 ms 28520 KiB
27.txt AC 123 ms 17456 KiB
28.txt AC 354 ms 26284 KiB
s1.txt AC 57 ms 13960 KiB
s2.txt AC 58 ms 13912 KiB
s3.txt AC 56 ms 13924 KiB