結果

問題 No.2482 Sandglasses
ユーザー titiatitia
提出日時 2023-10-11 05:24:31
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 900 ms / 2,000 ms
コード長 885 bytes
コンパイル時間 321 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 55,156 KB
最終ジャッジ日時 2024-11-16 23:00:29
合計ジャッジ時間 24,868 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 25
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
input = sys.stdin.readline

N,K,T=map(int,input().split())

A=input().split()
B=list(map(int,input().split()))

I=[0]*N

for i in range(N):
    if A[i]=="A":
        I[i]=B[i]
    else:
        I[i]=B[i]


T=T%(2*K)
L=[0]*N

for i in range(N):
    time=T
    if A[i]=="A":
        now=B[i]
        if now>=time:
            now-=time
            time=0
        else:
            time-=now
            now=0

        now+=time

        if now>=K:
            now=K-(now-K)
        
        L[i]=now
    else:
        now=B[i]
        if K-now>=time:
            now+=time
            time=0
        else:
            time-=K-now
            now=K

        now-=time

        if now<=0:
            now=-now
        
        L[i]=now

    #print(now,time)

L.sort()
IX=[(I[i],i) for i in range(N)]

IX.sort()

ANS=[0]*N

for i in range(N):
    ANS[IX[i][1]]=L[i]

print(*ANS)
0