結果
問題 |
No.825 賢いお買い物
|
ユーザー |
|
提出日時 | 2019-05-03 23:00:00 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,190 bytes |
コンパイル時間 | 1,673 ms |
コンパイル使用メモリ | 168,196 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-31 18:56:16 |
合計ジャッジ時間 | 2,714 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 WA * 1 |
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long int ll; typedef pair<ll, ll> pll; #define FOR(i, n, m) for (ll(i) = (m); (i) < (n); ++(i)) #define REP(i, n) FOR(i, n, 0) #define OF64 std::setprecision(10) const ll MOD = 1000000007; const ll INF = (ll)1e15; int main() { ll A, B, C; cin >> A >> B >> C; ll sum = A + B * 10; FOR(i, sum + 1, 1) { bool e = false; { //! Aを10枚未満 ll a = std::min(i % 10, A); ll b = std::min(i / 10, B); if (a + b * 10 == i && (A - a) + (B - b) == C) e = true; } if (A >= 10) { //! Aを10枚両替する ll a = std::min(i % 10, A - 10); ll b = std::min(i / 10, B + 1); if (a + b * 10 == i && (A - a - 10) + (B + 1 - b) == C) e = true; } if (A == 20) { ll b = std::min(i / 10, B + 2); if (b * 10 == i && B + 2 - b == C) e = true; } if (e) { cout << i << endl; return 0; } } cout << "Impossible" << endl; return 0; }