結果
問題 | No.50 おもちゃ箱 |
ユーザー | myanta |
提出日時 | 2017-05-10 23:35:38 |
言語 | C++11 (gcc 11.4.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 791 bytes |
コンパイル時間 | 202 ms |
コンパイル使用メモリ | 36,480 KB |
最終ジャッジ日時 | 2024-04-27 02:25:27 |
合計ジャッジ時間 | 651 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:58:42: error: ‘greater’ was not declared in this scope 58 | sort(a.begin(), a.end(), greater<int>()); | ^~~~~~~ main.cpp:58:50: error: expected primary-expression before ‘int’ 58 | sort(a.begin(), a.end(), greater<int>()); | ^~~ main.cpp:59:50: error: expected primary-expression before ‘int’ 59 | sort(b.begin(), b.end(), greater<int>()); | ^~~ main.cpp:52:39: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 52 | for(i=0;i<n;i++) scanf("%d", &a[i]); | ~~~~~^~~~~~~~~~~~~ main.cpp:54:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 54 | scanf("%d", &m); | ~~~~~^~~~~~~~~~ main.cpp:56:39: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 56 | for(i=0;i<m;i++) scanf("%d", &b[i]); | ~~~~~^~~~~~~~~~~~~
ソースコード
#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; }