結果
問題 | No.50 おもちゃ箱 |
ユーザー | myanta |
提出日時 | 2017-05-10 23:35:38 |
言語 | C++11 (gcc 11.4.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 791 bytes |
コンパイル時間 | 171 ms |
コンパイル使用メモリ | 37,200 KB |
最終ジャッジ日時 | 2023-09-08 04:50:08 |
合計ジャッジ時間 | 532 ms |
ジャッジサーバーID (参考情報) |
judge15 / judge14 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:58:28: error: ‘greater’ was not declared in this scope sort(a.begin(), a.end(), greater<int>()); ^~~~~~~ main.cpp:58:36: error: expected primary-expression before ‘int’ sort(a.begin(), a.end(), greater<int>()); ^~~ main.cpp:59:36: error: expected primary-expression before ‘int’ sort(b.begin(), b.end(), greater<int>()); ^~~
ソースコード
#include<cstdio> #include<vector> #include<algorithm> using namespace std; using vi=vector<int>; int solve_r(vi& a, vi& b, int d) { if(d>=a.size()) { return 1; } for(int i=0;i<b.size();i++) { if(a[d]>b[i]) continue; b[i]-=a[d]; if(solve_r(a, b, d+1)) return 1; b[i]+=a[d]; } return 0; } int solve(vi& a, vi b) { vi c; for(int i=1;i<=b.size();i++) { c=b; c.resize(i); if(solve_r(a, c, 0)) return i; } return -1; } int main(void) { int n, m, i; vi a, b; while(scanf("%d", &n)==1) { a.resize(n); for(i=0;i<n;i++) scanf("%d", &a[i]); scanf("%d", &m); b.resize(m); for(i=0;i<m;i++) scanf("%d", &b[i]); sort(a.begin(), a.end(), greater<int>()); sort(b.begin(), b.end(), greater<int>()); printf("%d\n", solve(a, b)); } return 0; }