結果
問題 |
No.3023 Utility is Max?
|
ユーザー |
|
提出日時 | 2025-02-17 02:37:30 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,695 bytes |
コンパイル時間 | 866 ms |
コンパイル使用メモリ | 78,360 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2025-02-17 02:37:34 |
合計ジャッジ時間 | 4,094 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 1 WA * 16 |
ソースコード
// GPT-o3-mini-highによる生成コード #include <iostream> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int Q; cin >> Q; while(Q--){ long long I; cin >> I; long long A1, B1, X1, Y1; cin >> A1 >> B1 >> X1 >> Y1; long long A2, B2, X2, Y2; cin >> A2 >> B2 >> X2 >> Y2; // (1) どちらの店でも指定数量で予算をぴったり使っているか if(A1 * X1 + B1 * Y1 != I || A2 * X2 + B2 * Y2 != I){ cout << "No\n"; continue; } // (2) 両店の指定数量が同一ならOK if(X1 == X2 && Y1 == Y2){ cout << "Yes\n"; continue; } // (3) 非同一の場合:交差費用を計算 // cross1 : 店2の価格体系で店1の指定数量の費用 // cross2 : 店1の価格体系で店2の指定数量の費用 long long cross1 = A2 * X1 + B2 * Y1; long long cross2 = A1 * X2 + B1 * Y2; // (3-a) もしどちらかの交差費用が予算未満なら,その店では他店の数量が余裕をもって買える if(cross1 < I || cross2 < I){ cout << "No\n"; continue; } // (3-b) もし両方の交差費用がちょうど予算内 (=I) なら, // 両店で互いの数量が購入可能になり矛盾する if(cross1 == I && cross2 == I){ cout << "No\n"; continue; } // いずれか一方で交差費用が厳密に > I ならOK cout << "Yes\n"; } return 0; }