Saturday, April 29, 2023

📑 Farewell Round A 2023 Task 2 Illumination Optimization

Farewell Round A 2023. Task 2

Python Only

def update(i,start,end,radius,condition,answer):
    while (i < N):
        if X[i]-start > radius: break
        else: end=X[i]
        i+=1
    if end!=condition: 
        answer+=[end]
        start=end
    else:
        answer=[]
    return i,start,end,answer
T=int(input())
for t in range(T):
    [M,R,N]=list(map(int,input().split()))
    X=list(map(int,input().split()))
    i,start,end,answer=0,0,-1,[]
    i,start,end,answer=update(i,start,end,R,-1,answer)
    while ((i < N) and (answer!=[]) and (end+R < M)):
        i,start,end,answer=update(i,start,end,2*R,start,answer)
    if M-end > R: answer=[]
    if answer!=[]:
        print('Case #{}: {}'.format((t+1),len(answer)))
    else: 
        print('Case #{}: IMPOSSIBLE'.format(t+1))
        


📑 Farewell Round A 2023 Task 1 Colliding Encoding

Farewell Round A 2023. Task 1

Python Only

T=int(input())
letters='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
for t in range(T):
    D=input().replace(' ','')
    N=int(input())
    numbers=set()
    words=set()
    for i in range(N):
        w=input()
        words.update([w])
        n=''.join([D[letters.find(s)] for s in w])
        numbers.update([n])
    if len(numbers) < len(words):
        print('Case #{}: YES'.format(t+1))
    else:
        print('Case #{}: NO'.format(t+1))
        


Monday, March 13, 2023

SageMathCell Text Coloring

Text Coloring

Sunday, July 24, 2022

📑 Go, Gopher! Part 2

Codejam Qualification Round 2018. Task 3

Python Only

def go_gopher(a):
    k=a//3+1
    l=k//3
    ra=[3*i+2 for i in list(range(l))]
    if k-1>ra[-1]:
        ra+=[k-1]
    c=1000
    go_ra=[ra[j%len(ra)] for j in range(c)]
    for i in go_ra:
        x,y=[i-1,i,i+1],[1,2,3]
        xy=[' '.join([str(el) for el in [xy1,xy2]]) 
            for xy1 in x for xy2 in y]
        flag=False
        while xy!=[]:
            out_xy='%d 2'%i
            print(out_xy,flush=True)
            in_xy=input()
            if in_xy in xy:
                xy.remove(in_xy)
            elif in_xy=='0 0':
                flag=True
                break
            elif in_xy=='-1 -1':
                exit()                
#            print(xy)
        if flag==True:
            break
T=int(input())
for i in range(T):
    A=int(input())
    go_gopher(A)


📑 Go, Gopher! Part 1

Codejam Qualification Round 2018. Task 3

Process Simulation