Submission #38082557
Source Code Expand
class ST
def initialize a
@l = (1<<(a.size-1).bit_length)-1
@t = [[a[-1],a[-1],true]]*@l+a.map{|v| [v,v,true] }
((@l+a.size-2)/2).downto(0){|i|
(m1,x1,b1),(m2,x2,b2) = @t[i+i+1,2]
@t[i] = [[m1,m2].min,[x1,x2].max,x1<=m2&&b1&&b2]
}
@t<<[a[-1],a[-1],true]
end
def inspect
i,z,*a = 0,1
while i<@t.size
a<<@t[i,z].inspect
i,z = i+z,z+z
end
return a*"\n"
end
def [] l,r
return if r<l
return @t[l+@l] if l==r
lm,lx,lb = @t[l+=@l]
rm,rx,rb = @t[r+=@l]
l1,r1 = (l-1)/2,(r-1)/2
while l1<r1
if 0<l&1
m1,x1,b1 = @t[l+1]
lm,lx,lb = [lm,m1].min,[lx,x1].max,lx<=m1&&lb&&b1
end
if r&1<1
m1,x1,b1 = @t[r-1]
rm,rx,rb = [rm,m1].min,[rx,x1].max,x1<=rm&&rb&&b1
end
l,r,l1,r1 = l1,r1,(l1-1)/2,(r1-1)/2
end
return [lm,rm].min,[lx,rx].max,lx<=rm&&lb&&rb
end
def []= i,v
i += @l
@t[i] = [v,v,true]
while 0<=i=(i-1)/2
(m1,x1,b1),(m2,x2,b2) = @t[i+i+1,2]
@t[i] = [[m1,m2].min,[x1,x2].max,x1<=m2&&b1&&b2]
end
return v
end
end
N = gets.to_i
S = gets.chomp
R = ST.new S.chars
A = []
gets.to_i.times{
q,a1,a2 = gets.split
case q.to_i
when 1
x,c = a1.to_i-1,a2
R[x] = c
# S[x] = c
#warn S
when 2
l,r = a1.to_i-1,a2.to_i-1
#warn '"%s[%s]%s" %s'%[S[0...l],S[l..r],S[r+1..],R[l,r].inspect]
A<<(R[l,r][2]?'Yes':'No')
when 3
#warn R.inspect
end
}
puts A
Submission Info
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
0 / 500 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_01.txt |
| All |
hand.txt, min.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, sample_01.txt |
| Case Name |
Status |
Exec Time |
Memory |
| hand.txt |
RE |
56 ms |
14096 KiB |
| min.txt |
AC |
62 ms |
14224 KiB |
| random_01.txt |
AC |
688 ms |
45500 KiB |
| random_02.txt |
AC |
695 ms |
45380 KiB |
| random_03.txt |
AC |
719 ms |
40644 KiB |
| random_04.txt |
AC |
733 ms |
43532 KiB |
| random_05.txt |
AC |
712 ms |
36580 KiB |
| random_06.txt |
AC |
722 ms |
36772 KiB |
| random_07.txt |
WA |
702 ms |
45932 KiB |
| random_08.txt |
WA |
687 ms |
45748 KiB |
| random_09.txt |
WA |
689 ms |
37208 KiB |
| random_10.txt |
WA |
700 ms |
37036 KiB |
| random_11.txt |
WA |
692 ms |
37100 KiB |
| random_12.txt |
WA |
696 ms |
36580 KiB |
| random_13.txt |
WA |
533 ms |
45044 KiB |
| random_14.txt |
AC |
549 ms |
45156 KiB |
| random_15.txt |
WA |
751 ms |
44108 KiB |
| random_16.txt |
AC |
720 ms |
44088 KiB |
| random_17.txt |
AC |
725 ms |
45088 KiB |
| random_18.txt |
AC |
725 ms |
45004 KiB |
| random_19.txt |
AC |
725 ms |
43740 KiB |
| random_20.txt |
AC |
731 ms |
44084 KiB |
| random_21.txt |
AC |
721 ms |
45916 KiB |
| sample_01.txt |
AC |
55 ms |
14336 KiB |