結果
| 問題 |
No.3282 Photos and Friends
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-11-07 20:06:24 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,339 bytes |
| コンパイル時間 | 836 ms |
| コンパイル使用メモリ | 79,040 KB |
| 実行使用メモリ | 9,600 KB |
| 最終ジャッジ日時 | 2025-11-07 20:06:33 |
| 合計ジャッジ時間 | 7,239 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 24 WA * 26 |
ソースコード
#include <algorithm>
#include <iostream>
#include <vector>
using u32 = unsigned int;
using i64 = long long;
using u64 = unsigned long long;
using v32 = std::vector<int>;
using v64 = std::vector<i64>;
void solve() {
i64 N, P, Q;
std::cin >> N >> P >> Q;
v64 X(N), A(N), B(N), res(N);
i64 sum1 = 0, sum2 = 0;
for (int i = 0; i < N; i++) {
std::cin >> X[i] >> A[i] >> B[i];
if (X[i] > A[i] + B[i]) {
std::cout << "No\n";
return;
}
sum1 += X[i];
res[i] = X[i] - B[i];
sum2 += res[i];
}
if (sum1 > P + Q) {
std::cout << "No\n";
return;
}
i64 diff = sum1 - Q - sum2;
i64 sum3 = 0;
for (int i = 0; i < N; i++) {
if (diff > A[i] - res[i]) {
diff -= A[i] - res[i];
res[i] = A[i];
} else {
res[i] += diff;
diff = 0;
}
sum3 += X[i] - res[i];
}
if (sum3 > Q) {
std::cout << "No\n";
return;
}
std::cout << "Yes\n";
for (int i = 0; i < N; i++) {
std::cout << res[i] << " " << X[i] - res[i] << '\n';
}
}
signed main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cout.tie(nullptr);
int T = 1;
// std::cin >> T;
while (T--) solve();
return 0;
}