結果
| 問題 |
No.3282 Photos and Friends
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-09-27 01:28:32 |
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 827 bytes |
| コンパイル時間 | 961 ms |
| コンパイル使用メモリ | 88,492 KB |
| 実行使用メモリ | 11,136 KB |
| 最終ジャッジ日時 | 2025-09-27 01:28:43 |
| 合計ジャッジ時間 | 10,086 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 37 WA * 13 |
ソースコード
#include <iostream>
#include <vector>
using namespace std;
using ll = long long;
int main() {
int N;ll P, Q;cin >> N >> P >> Q;
vector<ll> X(N), A(N), B(N);
for (int i = 0;i < N;i++) cin >> X[i] >> A[i] >> B[i];
vector<ll> C(N);
ll sa = 0;
ll sc = 0;
ll sx = 0;
for (int i = 0;i < N;i++) {
if (A[i]+B[i] < X[i]) {
cout << "No" << endl;
return 0;
}
sa += A[i];
C[i] = max(0LL, X[i]-B[i]);
sc += C[i];
sx += X[i];
}
ll L = max(sc, sx - Q);
ll R = min(P, sa);
if (L > R) {
cout << "No" << endl;
return 0;
}
cout << "Yes" << endl;
vector<ll> ret = C;
ll now = sc;
for (int i = 0;i < N;i++) {
ll dif = L - now;
if (C[i]+dif <= A[i]) {
ret[i] += dif;
break;
}
ret[i] = A[i];
now += A[i] - C[i];
}
for (int i = 0;i < N;i++) cout << ret[i] << " " << X[i] - ret[i] << endl;
}