結果
問題 |
No.3282 Photos and Friends
|
ユーザー |
![]() |
提出日時 | 2025-09-28 12:10:15 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 100 ms / 2,000 ms |
コード長 | 1,208 bytes |
コンパイル時間 | 453 ms |
コンパイル使用メモリ | 42,460 KB |
実行使用メモリ | 7,716 KB |
最終ジャッジ日時 | 2025-09-28 12:10:37 |
合計ジャッジ時間 | 7,702 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 50 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:31:8: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 31 | scanf("%d%lld%lld", &n, &p, &q); | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ main.cpp:33:10: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 33 | scanf("%d%d%d", xs + i, as + i, bs + i); | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
/* -*- coding: utf-8 -*- * * 3282.cc: No.3282 Photos and Friends - yukicoder */ #include<cstdio> #include<algorithm> using namespace std; /* constant */ const int MAX_N = 200000; /* typedef */ using ll = long long; /* global variables */ int xs[MAX_N], as[MAX_N], bs[MAX_N]; int cas[MAX_N], cbs[MAX_N]; /* subroutines */ /* main */ int main() { int n; ll p, q; scanf("%d%lld%lld", &n, &p, &q); for (int i = 0; i < n; i++) scanf("%d%d%d", xs + i, as + i, bs + i); ll r = 0; for (int i = 0; i < n; i++) { cas[i] = max(0, xs[i] - bs[i]); cbs[i] = max(0, xs[i] - as[i]); if (cas[i] + cbs[i] > xs[i]) { puts("No"); return 0; } p -= cas[i], q -= cbs[i]; r += xs[i] - (cas[i] + cbs[i]); } if (p >= 0 && q >= 0 && p + q >= r) { for (int i = 0; i < n; i++) { if (cas[i] + cbs[i] < xs[i] && p > 0) { int dp = min((ll)(xs[i] - (cas[i] + cbs[i])), p); cas[i] += dp, p -= dp; } if (cas[i] + cbs[i] < xs[i] && q > 0) { int dq = min((ll)(xs[i] - (cas[i] + cbs[i])), q); cbs[i] += dq, q -= dq; } } puts("Yes"); for (int i = 0; i < n; i++) printf("%d %d\n", cas[i], cbs[i]); } else puts("No"); return 0; }