結果
問題 | No.842 初詣 |
ユーザー | sifue |
提出日時 | 2019-01-12 14:02:44 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 1,830 bytes |
コンパイル時間 | 1,530 ms |
コンパイル使用メモリ | 168,772 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-01 06:28:45 |
合計ジャッジ時間 | 2,277 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
6,816 KB |
testcase_01 | AC | 2 ms
6,944 KB |
testcase_02 | AC | 2 ms
6,940 KB |
testcase_03 | AC | 2 ms
6,944 KB |
testcase_04 | AC | 2 ms
6,944 KB |
testcase_05 | AC | 3 ms
6,940 KB |
testcase_06 | AC | 2 ms
6,940 KB |
testcase_07 | AC | 2 ms
6,944 KB |
testcase_08 | AC | 2 ms
6,940 KB |
testcase_09 | AC | 2 ms
6,944 KB |
testcase_10 | AC | 4 ms
6,944 KB |
testcase_11 | AC | 2 ms
6,940 KB |
testcase_12 | AC | 2 ms
6,940 KB |
testcase_13 | AC | 2 ms
6,940 KB |
testcase_14 | AC | 2 ms
6,940 KB |
testcase_15 | AC | 2 ms
6,940 KB |
testcase_16 | AC | 2 ms
6,940 KB |
testcase_17 | AC | 2 ms
6,944 KB |
testcase_18 | AC | 2 ms
6,940 KB |
testcase_19 | AC | 2 ms
6,940 KB |
testcase_20 | AC | 2 ms
6,940 KB |
ソースコード
#include <bits/stdc++.h> // g++ -std=c++14 -o a a.cpp using namespace std; typedef pair<int, int> P; typedef long long ll; #define rep(i, n) for(int i = 0; i < (n); i++) #define repto(i, n) for(int i = 0; i <= (n); i++) #define all(c) (c).begin(), (c).end() #define uniq(c) c.erase(unique(all(c)), (c).end()) #define _1 first #define _2 second #define pb push_back #define INF 1145141919 #define MOD 1000000007 #define DEBUG(x) cout << #x << ": " << x << endl; __attribute__((constructor)) void initial() { cin.tie(0); ios::sync_with_stdio(false); } int c500 = 0, c100 = 0, c50 = 0, c10 = 0, c5 = 0, c1 = 0, total = 0; bool result = false; void rec(int s500, int s100, int s50, int s10, int s5, int s1, int index) { if (index == 0) { repto (i, c500) { rec(i, s100, s50, s10, s5, s1, index + 1); } } else if (index == 1) { repto (i, c100) { rec(s500, i, s50, s10, s5, s1, index + 1); } } else if (index == 2) { repto (i, c50) { rec(s500, s100, i, s10, s5, s1, index + 1); } } else if (index == 3) { repto (i, c10) { rec(s500, s100, s50, i, s5, s1, index + 1); } } else if (index == 4) { repto (i, c5) { rec(s500, s100, s50, s10, i, s1, index + 1); } } else if (index == 5) { repto (i, c1) { rec(s500, s100, s50, s10, s5, i, index + 1); } } else if (index == 6) { int sum = s500 * 500 + s100 * 100 + s50 * 50 + s10 * 10 + s5 * 5 + s1 * 1; if(sum == total) result = true; return; } } int main() { cin >> c500 >> c100 >> c50 >> c10 >> c5 >> c1 >> total; rec(0, 0, 0, 0, 0, 0, 0); if(result) { cout << "YES" << endl; } else { cout << "NO" << endl; } }