結果
| 問題 |
No.3282 Photos and Friends
|
| コンテスト | |
| ユーザー |
highlighter
|
| 提出日時 | 2025-09-23 10:31:57 |
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 298 ms / 2,000 ms |
| コード長 | 697 bytes |
| コンパイル時間 | 3,838 ms |
| コンパイル使用メモリ | 278,908 KB |
| 実行使用メモリ | 7,716 KB |
| 最終ジャッジ日時 | 2025-09-23 10:32:10 |
| 合計ジャッジ時間 | 11,267 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 50 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
int main(){
int N;
long long P,Q;
cin >> N >> P >> Q;
vector<int> X(N),A(N),B(N);
for(int i=0;i<N;i++){
cin >> X[i] >> A[i] >> B[i];
int la=max(X[i]-B[i],0),lb=max(X[i]-A[i],0);
if(la>A[i] || lb>B[i]){
cout << "No\n";
return 0;
}
P-=la,Q-=lb,X[i]-=la+lb,A[i]=la,B[i]=lb;
}
long long sum=0;
for(int i : X) sum+=i;
if(sum<=P+Q && P>=0 && Q>=0){
cout << "Yes\n";
long long cnt=0;
for(int i=0;i<N;cnt+=X[i++]){
if(cnt+X[i]<=P) cout << A[i]+X[i] << ' ' << B[i] << '\n';
else if(cnt<P) cout << P-cnt+A[i] << ' ' << cnt-P+X[i]+B[i] << '\n';
else cout << A[i] << ' ' << B[i]+X[i] << '\n';
}
}
else cout << "No\n";
}
highlighter