結果

問題 No.3282 Photos and Friends
ユーザー hirayuu_yc
提出日時 2025-09-20 11:20:22
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,192 bytes
コンパイル時間 391 ms
コンパイル使用メモリ 82,844 KB
実行使用メモリ 93,532 KB
最終ジャッジ日時 2025-09-20 11:20:31
合計ジャッジ時間 8,750 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 30 WA * 20
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
def main():
    input = sys.stdin.readline
    N, P, Q = map(int, input().split())
    X = []
    A = []
    B = []
    for _ in range(N):
        xi, ai, bi = map(int, input().split())
        X.append(xi); A.append(ai); B.append(bi)

    totalX = sum(X)
    if totalX != P + Q:
        print("No")
        return

    L = [0]*N
    R = [0]*N
    sumL = 0
    sumR = 0
    for i in range(N):
        # t1_i must be at least Xi - Bi (because t2_i <= Bi), and at least 0
        Li = max(0, X[i] - B[i])
        Ri = min(A[i], X[i])
        if Li > Ri:
            print("No")
            return
        L[i] = Li
        R[i] = Ri
        sumL += Li
        sumR += Ri

    if not (sumL <= P <= sumR):
        print("No")
        return

    # construct solution: start with t1 = L, distribute remaining (P - sumL)
    rem = P - sumL
    t1 = L[:]  # current allocation for type1
    for i in range(N):
        add = min(rem, R[i] - L[i])
        if add:
            t1[i] += add
            rem -= add
        if rem == 0:
            break

    # t2_i = X_i - t1_i
    print("Yes")
    for i in range(N):
        print(t1[i], X[i] - t1[i])

if __name__ == "__main__":
    main()
0