Submission #54933176
Source Code Expand
class T
def true?
@true
end
def to_s
@true ? 'True' : 'False'
end
def rank
@rank
end
def p= p
@p = p
end
def flip
@true = ! @true
@p.onchange if @p
end
end
class Tm<T
def initialize
@rank = 1
@true = false
end
def inspect
"<Tm>"
end
end
class Op<T
def initialize op,l,r
@op,@l,@r = op,l,r
@rank = [l.rank,r.rank].max+1
@true = l.true?.send(op,r.true?)
l.p = r.p = self
end
def inspect
"<Op #{@op} #{@rank})>"
end
def onchange
flip if @true != @l.true?.send(@op,@r.true?)
end
end
Z,Q = gets.split.map(&:to_i)
F = gets.chomp
warn [:scan,Z]*' '
S,O = [],[ops=[]]
F.each_byte{|op|
case op
when 0x5b # [
S<<0
when 0x30..0x39 # 0..9
S[-1] *= 10
S[-1] += op-0x30
when 0x5d # ]
S[-1] *= -1
when 0x28 # (
O<<ops = []
when 0x29 # )
S.concat O.pop.reverse
ops = O[-1]
else # ! & ^ |
if op==0x21 && ops[-1]==0x21 # !!
ops.pop
else
S<<ops.pop while ops[0] && ops[-1]<op
ops<<op
end
end
}
S.concat ops.reverse
warn [:token,S.size]*' '
S.pop(S.size).each{|op|
if op<0
S<<[:t,-op]
else
if op==0x21 # !
S<<[:t,0]
op = :^
else
op = op.chr.intern
end
l,r = S.pop 2
if l[0]==op
if r[0]==op
l,r = r,l if l.size<r.size
r.shift
l.concat r
else
l<<r
end
S<<l
elsif r[0]==op
r<<l
S<<r
else
S<<[op,l,r]
end
end
}
A2T = Hash.new{|h,a| h[a] = [] }
if :スタックが小さいなら
E = [[]]
while (op,*args = S.pop)
if op==:t
t = Tm.new
A2T[*args]<<t
E[-1]<<t
elsif args[0]
E<<[]
S<<[op]
S.concat args
else
args = E.pop
args = args.each_slice(2).map{|a,b| b ? Op.new(op,a,b) : a } while args[1]
E[-1]<<args[0]
end
end
X, = E.flatten!
else
M = lambda{|(op,*args)|
if op==:t
t = Tm.new
A2T[*args]<<t
t
else
args.map!(&M)
args = args.each_slice(2).map{|a,b| b ? Op.new(op,a,b) : a } while args[1]
args[0]
end
}
X, = S.map!(&M)
end
A = A2T.keys.sort<<10**10
warn [:rank,X.rank]*' '
warn [:query,Q]*' '
Ans = [nil]*Q
Q.times.map{|q| [q,gets.to_i] }.sort_by{_2}.each{|q,x|
A2T[A.shift].each(&:flip) while A[0]<=x
Ans[q] = X.to_s
}
puts Ans
Submission Info
| Submission Time | |
|---|---|
| Task | A - 試験 2 (Examination 2) |
| User | ds14050 |
| Language | Ruby (ruby 3.2.2) |
| Score | 100 |
| Code Size | 2299 Byte |
| Status | AC |
| Exec Time | 1088 ms |
| Memory | 100072 KiB |
Judge Result
| Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | Subtask4 | Subtask5 | Subtask6 | Subtask7 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 5 / 5 | 20 / 20 | 10 / 10 | 6 / 6 | 12 / 12 | 20 / 20 | 27 / 27 | ||||||||||||||||
| Status |
|
|
|
|
|
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample-01.txt, sample-02.txt, sample-03.txt |
| Subtask1 | 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, sample-02.txt |
| Subtask2 | 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt |
| Subtask3 | 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-14.txt, sample-01.txt, sample-02.txt, sample-03.txt |
| Subtask4 | 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, sample-03.txt |
| Subtask5 | 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 05-01.txt, 05-02.txt, 05-03.txt, 05-04.txt, 05-05.txt, 05-06.txt, 05-07.txt, 05-08.txt, 05-09.txt, sample-02.txt |
| Subtask6 | 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-14.txt, 06-01.txt, 06-02.txt, 06-03.txt, 06-04.txt, 06-05.txt, 06-06.txt, 06-07.txt, 06-08.txt, 06-09.txt, 06-10.txt, sample-01.txt, sample-02.txt, sample-03.txt |
| Subtask7 | 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-14.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, 05-01.txt, 05-02.txt, 05-03.txt, 05-04.txt, 05-05.txt, 05-06.txt, 05-07.txt, 05-08.txt, 05-09.txt, 06-01.txt, 06-02.txt, 06-03.txt, 06-04.txt, 06-05.txt, 06-06.txt, 06-07.txt, 06-08.txt, 06-09.txt, 06-10.txt, 07-01.txt, 07-02.txt, 07-03.txt, 07-04.txt, 07-05.txt, 07-06.txt, 07-07.txt, 07-08.txt, 07-09.txt, 07-10.txt, 07-11.txt, 07-12.txt, 07-13.txt, 07-14.txt, 07-15.txt, 07-16.txt, 07-17.txt, sample-01.txt, sample-02.txt, sample-03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01-01.txt | AC | 758 ms | 75864 KiB |
| 01-02.txt | AC | 729 ms | 76616 KiB |
| 01-03.txt | AC | 868 ms | 89900 KiB |
| 01-04.txt | AC | 729 ms | 71248 KiB |
| 01-05.txt | AC | 727 ms | 75756 KiB |
| 01-06.txt | AC | 1088 ms | 100072 KiB |
| 01-07.txt | AC | 702 ms | 75028 KiB |
| 01-08.txt | AC | 751 ms | 74196 KiB |
| 01-09.txt | AC | 734 ms | 78764 KiB |
| 01-10.txt | AC | 699 ms | 70568 KiB |
| 01-11.txt | AC | 725 ms | 73216 KiB |
| 02-01.txt | AC | 484 ms | 47840 KiB |
| 02-02.txt | AC | 649 ms | 61764 KiB |
| 02-03.txt | AC | 393 ms | 51188 KiB |
| 02-04.txt | AC | 416 ms | 51236 KiB |
| 02-05.txt | AC | 411 ms | 48996 KiB |
| 02-06.txt | AC | 530 ms | 61636 KiB |
| 02-07.txt | AC | 525 ms | 61192 KiB |
| 02-08.txt | AC | 471 ms | 53024 KiB |
| 02-09.txt | AC | 509 ms | 53868 KiB |
| 02-10.txt | AC | 451 ms | 61988 KiB |
| 03-01.txt | AC | 234 ms | 45644 KiB |
| 03-02.txt | AC | 236 ms | 44420 KiB |
| 03-03.txt | AC | 220 ms | 40488 KiB |
| 03-04.txt | AC | 220 ms | 40704 KiB |
| 03-05.txt | AC | 231 ms | 47356 KiB |
| 03-06.txt | AC | 229 ms | 45632 KiB |
| 03-07.txt | AC | 234 ms | 46036 KiB |
| 03-08.txt | AC | 242 ms | 45972 KiB |
| 03-09.txt | AC | 233 ms | 45612 KiB |
| 03-10.txt | AC | 241 ms | 45696 KiB |
| 03-11.txt | AC | 222 ms | 44636 KiB |
| 03-12.txt | AC | 236 ms | 45808 KiB |
| 03-13.txt | AC | 241 ms | 45812 KiB |
| 03-14.txt | AC | 242 ms | 45980 KiB |
| 04-01.txt | AC | 588 ms | 72428 KiB |
| 04-02.txt | AC | 573 ms | 69908 KiB |
| 04-03.txt | AC | 828 ms | 90716 KiB |
| 04-04.txt | AC | 596 ms | 69956 KiB |
| 04-05.txt | AC | 582 ms | 73844 KiB |
| 04-06.txt | AC | 701 ms | 70212 KiB |
| 04-07.txt | AC | 592 ms | 71980 KiB |
| 04-08.txt | AC | 599 ms | 70928 KiB |
| 04-09.txt | AC | 592 ms | 69024 KiB |
| 04-10.txt | AC | 599 ms | 70404 KiB |
| 04-11.txt | AC | 586 ms | 73524 KiB |
| 05-01.txt | AC | 784 ms | 72560 KiB |
| 05-02.txt | AC | 784 ms | 72432 KiB |
| 05-03.txt | AC | 820 ms | 79616 KiB |
| 05-04.txt | AC | 805 ms | 80508 KiB |
| 05-05.txt | AC | 779 ms | 72132 KiB |
| 05-06.txt | AC | 817 ms | 78348 KiB |
| 05-07.txt | AC | 805 ms | 74948 KiB |
| 05-08.txt | AC | 739 ms | 78124 KiB |
| 05-09.txt | AC | 700 ms | 78504 KiB |
| 06-01.txt | AC | 430 ms | 54980 KiB |
| 06-02.txt | AC | 533 ms | 61104 KiB |
| 06-03.txt | AC | 487 ms | 55632 KiB |
| 06-04.txt | AC | 426 ms | 57928 KiB |
| 06-05.txt | AC | 417 ms | 52440 KiB |
| 06-06.txt | AC | 443 ms | 52412 KiB |
| 06-07.txt | AC | 415 ms | 57804 KiB |
| 06-08.txt | AC | 446 ms | 55360 KiB |
| 06-09.txt | AC | 436 ms | 54368 KiB |
| 06-10.txt | AC | 412 ms | 57056 KiB |
| 07-01.txt | AC | 747 ms | 73364 KiB |
| 07-02.txt | AC | 819 ms | 74964 KiB |
| 07-03.txt | AC | 1040 ms | 88828 KiB |
| 07-04.txt | AC | 795 ms | 75072 KiB |
| 07-05.txt | AC | 910 ms | 86972 KiB |
| 07-06.txt | AC | 802 ms | 87048 KiB |
| 07-07.txt | AC | 725 ms | 75480 KiB |
| 07-08.txt | AC | 947 ms | 85720 KiB |
| 07-09.txt | AC | 805 ms | 70488 KiB |
| 07-10.txt | AC | 753 ms | 74412 KiB |
| 07-11.txt | AC | 722 ms | 71980 KiB |
| 07-12.txt | AC | 723 ms | 72608 KiB |
| 07-13.txt | AC | 754 ms | 74292 KiB |
| 07-14.txt | AC | 776 ms | 74020 KiB |
| 07-15.txt | AC | 858 ms | 92928 KiB |
| 07-16.txt | AC | 780 ms | 75504 KiB |
| 07-17.txt | AC | 1042 ms | 90168 KiB |
| sample-01.txt | AC | 43 ms | 17368 KiB |
| sample-02.txt | AC | 43 ms | 17104 KiB |
| sample-03.txt | AC | 43 ms | 17588 KiB |