QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#349759 | #8058. Binary vs Ternary | pipoika# | AC ✓ | 97ms | 10024kb | Python3 | 2.8kb | 2024-03-10 05:09:44 | 2024-03-10 05:09:46 |
Judging History
answer
def test(steps, a, b):
# print(a)
for i,j in steps:
i-=1
part = int(a[i:j],3)
part = bin(part)[2:]
a=a[:i] + part + a[j:]
# print(a,i+1,j)
return a == b
def solve():
a=input()
orig_a = a
b=input()
if a==b:
print(0)
return
if a=='1' or b=='1':
print(-1)
return
# merge end zeros
i = 0
while i<len(a) and a[len(a)-1-i] == '0':
i+=1
steps = []
if i>1:
steps.append((len(a)-i+1, len(a)))
a=a[:-i+1]
# delete all other zeros
i = 0
while i<len(a)-1:
if a[i]=='0':
for j in range(i+1,len(a)):
if a[j]=='1': break
a = a[:i] + a[j:]
steps.append((i+1,j+1))
i+=1
# either 111s or 111s0
goal = sum(1 for c in b if c=='1')
if b[-1] == '1': # need to remove trailing, add 1 later
goal-=1
# put in trailing 0
if a[-1] == '1':
steps.append((len(a)-1,len(a)))
a=a[:-1] + '00'
steps.append((len(a)-1,len(a)))
a=a[:-1]
# add
cur = sum(1 for c in a if c=='1')
while cur < goal:
steps.append((len(a)-1,len(a)))
a=a[:-1] + '1'
steps.append((len(a)-1,len(a)))
a=a[:-1] + '00'
steps.append((len(a)-2,len(a)-1))
a=a[:-2] + '10'
cur+=1
# delete
while cur > goal:
steps.append((len(a)-2,len(a)-1))
a=a[:-2] + '000'
steps.append((len(a)-2,len(a)))
a=a[:-2]
cur-=1
if b[-1] == '1':
steps.append((len(a)-1,len(a)))
a=a[:-1]+'1'
# now we have correct number of ones
# trailing zeros
goal = 0
while goal<len(b) and b[-1-goal]=='0': goal+=1
rem = ''
if goal:
cur = 1
while cur < goal:
steps.append((len(a)-1,len(a)))
# a=a[:-1] + '1'
steps.append((len(a)-1,len(a)))
# a=a[:-1] + '0' # + another '0'!!
# rem = '0'+rem
cur+=1
# mid zeros
i = 0
while i<len(b):
j=i+1
while j<len(b):
if b[j]=='1':
break
j+=1
if j == len(b):
break
num_zeros = j-i-1
if num_zeros:
# add 2 zeros
steps.append((i+1,i+2))
steps.append((i+1,i+3))
if num_zeros == 1:
steps.append((i+3,i+4))
else:
for _ in range(num_zeros-2):
steps.append((i+1,i+2))
steps.append((i+1,i+2))
i=j
if not test(steps, orig_a, b):
exit(1)
print(len(steps))
for s in steps:print(*s)
for _ in range(int(input())):
solve()
# break
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 5ms
memory: 9936kb
input:
3 1 111 110110 1101010 1111 111111
output:
-1 7 3 4 2 3 2 4 4 5 4 5 4 6 6 7 9 3 4 4 5 3 4 3 4 3 4 4 5 4 5 4 5 5 6
result:
ok Haitang Suki (3 test cases)
Test #2:
score: 0
Accepted
time: 14ms
memory: 9992kb
input:
1000 11100 111 1 11110 10001 10 1011 1111 10 1110 1100 11 11010 11 110 11 1 10001 10110 10 10 11111 10000 1001 10 1 11 10111 11 10 1 100 11 10100 1 10 101 11 1100 110 11 1110 1 1001 1 11111 10 10010 10 11001 110 1010 10011 1110 10100 1001 1001 101 100 1 1001 11 101 11 101 1001 1 1 1011 1 10 10 1011 ...
output:
4 4 5 2 3 3 5 2 3 -1 3 2 5 1 2 2 3 7 2 3 2 3 3 4 2 3 2 3 2 3 3 4 6 1 2 1 2 1 2 2 3 2 3 2 3 4 3 4 1 2 2 4 1 2 6 3 4 2 3 3 5 1 2 2 4 1 2 3 1 2 2 4 1 2 -1 5 2 3 2 3 3 5 1 2 2 4 10 1 2 1 2 1 2 2 3 2 3 2 3 3 4 3 4 3 4 4 5 4 2 5 1 2 1 2 1 3 -1 12 1 2 2 3 1 2 1 2 1 2 2 3 2 3 2 3 3 4 1 2 1 3 3 4 2 1 2 2 3 -...
result:
ok Haitang Suki (1000 test cases)
Test #3:
score: 0
Accepted
time: 11ms
memory: 9928kb
input:
1000 1110 110 1 11 1110 110 101 111 100 1001 10 110 1001 10011 10 11010 100 111 1101 1001 1 111 1 1 11 1 1011 1101 1 11 111 10 100 1110 1001 10 10 11 1 10 11 11 111 1100 10100 11001 10 110 1001 101 1 10011 100 10 10110 111 1100 110 11010 11 1000 1101 1010 1 1100 100 11010 1 1011 1 11001 1110 11 1110...
output:
2 2 3 3 5 -1 2 2 3 3 5 7 2 3 1 2 2 3 1 2 1 2 1 2 2 3 4 2 3 1 2 1 2 1 3 3 1 2 1 2 1 2 9 2 4 1 2 2 3 1 2 1 2 1 2 2 3 1 2 1 3 9 1 2 1 2 1 2 2 3 2 3 2 3 2 3 2 4 4 5 5 2 3 1 2 1 2 1 2 2 3 8 3 4 2 3 3 4 1 2 2 4 1 2 1 2 1 3 -1 0 -1 7 2 3 2 3 3 4 2 3 2 3 2 4 4 5 -1 4 2 3 3 4 1 2 2 4 7 2 3 1 2 1 2 1 2 2 3 2 ...
result:
ok Haitang Suki (1000 test cases)
Test #4:
score: 0
Accepted
time: 19ms
memory: 9924kb
input:
1000 11110010 11110001 11010110 1001 11011110 1001110 111101100 111111100 110 101111001 10000100 10 1100100 101010 100 1000 1011110 110101 1001 10001111 100011111 1001111011 1110100 1010 1001100001 1000 11 101101 1000001111 11100 101001101 1 11 111001111 100101101 10 1 10111 1111000111 1101 10111 11...
output:
8 5 7 4 5 5 7 4 5 4 5 4 6 4 5 4 5 13 3 4 4 5 4 5 5 7 3 4 4 6 2 3 3 5 1 2 2 4 1 2 1 2 1 3 7 3 4 5 6 6 8 4 5 5 7 1 2 1 3 7 8 9 5 6 6 7 6 7 6 7 7 8 7 8 15 2 3 2 3 2 3 3 4 3 4 3 4 4 5 4 5 4 5 5 6 1 2 1 3 3 4 6 7 6 8 4 7 8 2 6 1 2 2 4 8 6 7 3 5 1 2 1 3 3 4 3 4 3 5 5 6 5 2 3 1 2 1 2 1 2 1 2 12 2 3 4 5 5 7...
result:
ok Haitang Suki (1000 test cases)
Test #5:
score: 0
Accepted
time: 24ms
memory: 9876kb
input:
1000 11 10 1111101 10 1011010001 1101010100 101110 101101001 110 110 100001 1111 10 1001100 1101101000 1 1 1110 11 1110000 110111010 1001000 110100000 1 1110101001 10 11111 1001101 110 1110 111 11 11000 1 111111 1 101111111 1100100100 101101100 1111110 10001 1001 1100110100 100 1001 101001 100011000...
output:
2 1 2 2 3 11 6 7 5 6 6 7 4 5 5 7 3 4 4 6 2 3 3 5 1 2 2 4 19 2 3 4 5 5 8 4 5 5 6 4 5 4 5 4 5 5 6 5 6 2 3 2 4 4 5 4 5 4 6 6 7 6 7 6 8 8 9 10 2 3 4 5 1 2 1 3 3 4 4 5 4 6 6 7 6 7 6 8 0 10 2 6 1 2 2 3 1 2 1 2 1 2 2 3 2 3 2 3 3 4 10 1 2 1 2 1 2 2 3 2 3 2 3 3 4 3 4 1 2 1 3 -1 -1 14 1 2 2 3 1 2 1 2 1 2 2 3 ...
result:
ok Haitang Suki (1000 test cases)
Test #6:
score: 0
Accepted
time: 27ms
memory: 10000kb
input:
1000 1010100001 1101101111 1000001111 1100000010 1101001000 1111011000 1011010000 1101111100 1000011000 1001010110 1100010110 1001001000 1000111110 1101100000 1101011010 1111000101 1110111001 1000000010 1111110000 1001100000 1000010111 1010101110 1110101000 1111100001 1110110101 1011100001 110111101...
output:
24 2 3 3 4 4 8 3 4 4 5 3 4 3 4 3 4 4 5 4 5 4 5 5 6 5 6 5 6 6 7 6 7 6 7 7 8 2 3 2 4 4 5 5 6 5 7 7 8 15 2 7 4 5 5 6 3 4 4 6 2 3 2 4 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 16 8 10 3 4 4 6 4 5 4 5 4 5 5 6 5 6 5 6 6 7 6 7 6 7 6 7 4 5 4 6 6 7 17 7 10 2 3 4 5 4 5 4 5 4 5 5 6 5 6 5 6 6 7 6 7 6 7 7 8 7 8 2 3 2 4 4 ...
result:
ok Haitang Suki (1000 test cases)
Test #7:
score: 0
Accepted
time: 24ms
memory: 9884kb
input:
1000 1010010100 1100011110 1111100001 1110100100 1001011000 1001011110 1110100101 1000001010 1110010010 1110110010 1010001000 1110011110 1010101110 1100011011 1000000100 1100100001 1010001011 1111101100 1001110101 1010001011 1001001010 1010010111 1011001010 1110001111 1000001000 1111001011 100111101...
output:
14 9 10 2 3 3 5 4 5 4 5 4 5 4 5 5 6 5 6 5 6 2 3 2 4 2 3 2 3 10 6 10 5 6 6 7 5 6 5 6 3 4 3 5 5 6 5 6 5 7 14 8 10 2 4 3 4 4 5 4 5 4 5 5 6 5 6 5 6 1 2 1 3 4 5 4 6 6 7 20 4 5 5 7 6 7 5 6 6 7 4 5 5 7 3 4 4 6 1 2 1 3 1 2 1 2 1 2 1 2 1 2 1 2 7 8 7 9 9 10 10 4 6 5 7 5 6 5 6 5 6 3 4 3 5 5 6 6 7 6 8 17 8 10 2...
result:
ok Haitang Suki (1000 test cases)
Test #8:
score: 0
Accepted
time: 75ms
memory: 10004kb
input:
1000 10001101010010010010011111000100011110010111010011100110011 101100010110011111000010101 101111101000100010010101 10100101000010100001101000001101010111 1101110100111100111110101101101000110101010010011100 1110100100101011000011 1100001100101011010000111010111000000101 11101000100000101000001111...
output:
74 2 5 4 5 5 6 6 8 7 9 8 10 9 11 14 17 15 18 19 21 20 21 23 24 24 26 27 29 29 31 29 30 30 31 28 29 29 31 27 28 28 30 26 27 27 29 25 26 26 28 24 25 25 27 23 24 24 26 22 23 23 25 21 22 22 24 20 21 21 23 19 20 20 22 18 19 19 21 17 18 18 20 16 17 17 19 15 16 16 18 14 15 15 17 13 14 14 16 13 14 1 2 1 3 3...
result:
ok Haitang Suki (1000 test cases)
Test #9:
score: 0
Accepted
time: 75ms
memory: 9964kb
input:
1000 100000000110011000110010101 11110000 10010001001001111000110110001001011101011110 111011111001100111101101000011111110 1011110110011110110011000111010011111000100110011010101000000 1101001 1001010 10101110110001101010001000111001000111011000110111111110 11101001110000011100 10100010111000000110...
output:
24 2 10 4 6 6 9 8 10 9 10 10 11 9 10 10 11 8 9 9 11 7 8 8 10 6 7 7 9 5 6 6 8 4 5 5 7 4 5 4 5 4 5 4 5 4 5 4 5 36 2 4 3 6 4 6 5 7 9 12 11 12 13 16 14 16 15 16 18 19 19 20 22 23 22 23 22 23 23 24 23 24 23 24 3 4 3 5 5 6 9 10 9 11 13 14 13 15 19 20 19 21 21 22 22 23 22 24 24 25 24 25 24 26 24 25 24 25 2...
result:
ok Haitang Suki (1000 test cases)
Test #10:
score: 0
Accepted
time: 74ms
memory: 10024kb
input:
1000 11111100001000000001110111011111001010011110100001100001011 1111001111111111100011111011011101100110000011010010 110010011001001110101 1011101100 1110 110111111010010011110010101101000101111000111111111010111111000 10101101101010001100111 11110001001011110010 1111010110010101010001011 111 10011...
output:
55 7 11 8 16 11 12 14 15 19 21 20 21 21 23 25 26 26 30 28 32 29 30 29 30 30 31 29 30 29 30 29 30 30 31 30 31 30 31 31 32 31 32 31 32 32 33 32 33 32 33 4 5 4 6 17 18 17 19 17 18 17 18 25 26 25 27 27 28 28 29 28 30 30 31 32 33 32 34 34 35 35 36 35 37 39 40 39 41 39 40 39 40 39 40 39 40 39 40 39 40 46 ...
result:
ok Haitang Suki (1000 test cases)
Test #11:
score: 0
Accepted
time: 75ms
memory: 9972kb
input:
1000 111100011011111100101110101 11111011000101100110001011101011 10011001010101110111011111111110 11010100000 11001100100011101000101111011011 10011101010110110 101011000011 101110100101101010000111010010101101 1110111110000101110100101101 1101110111100000110001001011000001111101010011 111111100110...
output:
37 5 8 7 8 13 15 14 15 17 18 18 19 17 18 18 19 17 18 17 18 17 18 18 19 5 6 5 7 7 8 8 9 8 10 8 9 8 9 12 13 12 14 14 15 15 16 15 17 19 20 19 21 19 20 19 20 23 24 23 25 25 26 27 28 27 29 29 30 29 30 29 31 31 32 57 2 4 4 6 5 6 6 7 7 8 10 11 13 14 21 22 22 24 20 21 21 23 19 20 20 22 18 19 19 21 17 18 18 ...
result:
ok Haitang Suki (1000 test cases)
Test #12:
score: 0
Accepted
time: 72ms
memory: 9976kb
input:
1000 11000001100100011000100101001101100011100100110010111011000 1111101101110 1000001011101111011010011001001100011000 11001110110101100011001011000111110111010000111010010 100101011 1011010011111100 100 11101000000110100100110100110001100111110111110010001001010 11110000011100011110010100000011100...
output:
53 57 59 3 8 5 7 6 9 8 11 9 11 10 11 11 13 13 14 15 18 18 20 19 21 21 23 22 23 25 26 25 26 26 28 24 25 25 27 23 24 24 26 22 23 23 25 21 22 22 24 20 21 21 23 19 20 20 22 18 19 19 21 17 18 18 20 16 17 17 19 15 16 16 18 14 15 15 17 13 14 14 16 12 13 13 15 11 12 12 14 10 11 11 13 5 6 5 7 7 8 8 9 8 10 10...
result:
ok Haitang Suki (1000 test cases)
Test #13:
score: 0
Accepted
time: 97ms
memory: 9956kb
input:
1000 1110101101011010111111111001001001101101001111100001000010110001 1111100111110101010011010111100100111110001111111100010100010010 1101011000001010101000000011111111101101010111100011110011100011 1110010001100011111001000000111111111111000010001100000100000010 10111101100001101001001011010001101...
output:
67 4 5 5 6 7 8 8 9 10 11 11 12 20 22 21 23 22 24 24 25 26 27 27 29 32 36 33 37 34 35 36 39 35 36 36 37 35 36 35 36 35 36 36 37 36 37 36 37 37 38 37 38 37 38 5 6 5 7 12 13 12 14 14 15 14 15 14 16 16 17 16 17 16 18 18 19 18 19 18 20 22 23 22 24 24 25 24 25 24 26 26 27 29 30 29 31 32 33 32 34 39 40 39 ...
result:
ok Haitang Suki (1000 test cases)
Test #14:
score: 0
Accepted
time: 91ms
memory: 10020kb
input:
1000 1010011000110100110000001111001100100010111111101001000101111100 1111001000000001111001010110011101110101000010000001010011001010 1001100100100101111101011111011010100111000001100101001110001010 1010101100010001100001111010010110011101010001011101010110110011 11101011110000111111101011111011001...
output:
84 63 64 2 3 3 5 5 8 7 8 8 10 10 16 14 16 16 18 17 20 18 19 25 26 26 28 27 30 28 29 31 32 32 34 30 31 31 33 29 30 30 32 28 29 29 31 4 5 4 6 7 8 7 9 7 8 7 8 7 8 7 8 7 8 7 8 7 8 7 8 7 8 7 8 7 8 7 8 19 20 19 21 22 23 22 24 24 25 24 25 24 26 26 27 27 28 27 29 32 33 32 34 34 35 36 37 36 38 38 39 38 39 38...
result:
ok Haitang Suki (1000 test cases)
Test #15:
score: 0
Accepted
time: 94ms
memory: 10020kb
input:
1000 1011111000111010111001111001000011101001100011100000101110000101 1001100010000111101011001010000101100110101101010100101011001010 1001101111000001100111110111011111110011101010101101010110011100 1100101011100110001011000111111101001001111100110010100101001110 11111101100001101001110111010011001...
output:
82 2 3 7 10 10 11 11 12 14 16 18 20 19 23 22 23 23 25 25 28 28 33 29 30 32 36 33 34 32 33 33 34 31 32 32 34 30 31 31 33 1 2 1 3 5 6 5 7 5 6 5 6 9 10 9 11 9 10 9 10 9 10 9 10 17 18 17 19 19 20 19 20 19 21 21 22 22 23 22 24 25 26 25 27 27 28 27 28 27 29 27 28 27 28 27 28 27 28 32 33 32 34 34 35 35 36 ...
result:
ok Haitang Suki (1000 test cases)
Test #16:
score: 0
Accepted
time: 94ms
memory: 9956kb
input:
1000 1001101101110101111101001110000111110100010100101111101001011001 1110001000100001001001001111111100101101101000100100111000001011 1000001000001110101011111011011111011101011100001101101111100001 1100111111001100100010010101001000101000101100100011101001111011 10110101000000011111000111111110000...
output:
84 2 4 4 5 6 7 9 10 10 11 15 16 16 18 19 23 24 25 25 28 26 27 27 29 28 29 33 34 34 36 35 36 37 39 36 37 37 38 35 36 36 38 34 35 35 37 33 34 34 36 32 33 33 35 31 32 32 34 30 31 31 33 29 30 30 32 29 30 3 4 3 5 3 4 3 4 7 8 7 9 7 8 7 8 11 12 11 13 11 12 11 12 11 12 11 12 16 17 16 18 19 20 19 21 22 23 22...
result:
ok Haitang Suki (1000 test cases)
Test #17:
score: 0
Accepted
time: 91ms
memory: 9912kb
input:
1000 1101011111000011000110010000110000111110001000101110100110001110 1100101111001111100011111011001111000110100110110001010111101011 1010110111100001110110101111101000000111010111010101010110010111 1010011010011111001010111101100011110100111111100100111011101101 11100011010101001001001001110100000...
output:
79 3 4 4 5 9 13 11 14 13 15 14 18 16 20 21 24 22 25 23 24 26 27 27 29 29 32 31 32 31 32 31 32 32 33 32 33 32 33 33 34 33 34 33 34 34 35 34 35 34 35 35 36 35 36 35 36 36 37 36 37 36 37 37 38 37 38 37 38 38 39 2 3 2 4 5 6 5 7 7 8 10 11 10 12 17 18 17 19 17 18 17 18 25 26 25 27 27 28 28 29 28 30 34 35 ...
result:
ok Haitang Suki (1000 test cases)
Extra Test:
score: 0
Extra Test Passed