Saturday, November 25, 2023

📑 Fun Random Selection of Students in the Class

Fun Random Selection of Students in the Class

Which pupil should go to the board?

Saturday, May 27, 2023

📑 AGG filtering

Anti-Grain Geometry (AGG) & Matplotlib Artists





Sunday, May 21, 2023

📑 Farewell Round A 2023 Task 5 Untie

Farewell Round A 2023. Task 5

Python Only

T=int(input())
for t in range(T):
    C=input()
    if len(set(C))==1:
        count=len(C)//2+len(C)%2
    else:
        while C[0]==C[-1]:
            C=C[1:]+C[0]
        count=C.count('PP')+C.count('SS')+C.count('RR')
    print('Case #{}: {}'.format((t+1),count))
        


📑 Farewell Round A 2023 Task 4 ASCII Art

Farewell Round A 2023. Task 4

Python Only

# Competition Variant 1 (All Points)
letters='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
def count26down(number):
    diff1,i,j=number,1,0
    while number>0:
        diff1=number; k1=i
        number-=i*26; i+=1
    while diff1>0:
        diff2=diff1; k2=j
        diff1-=k1; j+=1
    return k2
T=int(input())
for t in range(T):
    N=int(input())
    L=letters[count26down(N)]
    print('Case #{}: {}'.format((t+1),L))
    


Saturday, May 20, 2023

📑 Farewell Round A 2023 Task 3 Rainbow Sort

Farewell Round A 2023. Task 3

Python Only

# Competition Variant 1 (All Points)
T=int(input())
for t in range(T):
    N=int(input())
    cards=input().split()
    cards_set=set()
    result=[]
    for i in range(N):
        if cards[i] not in cards_set:
            cards_set.update([cards[i]])
            result.append(cards[i])
        elif result[-1]!=cards[i]:
            result='IMPOSSIBLE'
            break
 #       print(i,result)
    if result!='IMPOSSIBLE': result=' '.join(result)
    print('Case #{}: {}'.format((t+1),result))
    


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