Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
143222 jiayou 简单背包问题 C++ 解答错误 60 0 MS 260 KB 816 2024-04-13 16:02:05

Tests(3/5):


#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #include<vector> using namespace std; const int maxN=5000; const int inf=2147483647; int n,S; int Weight[maxN]; vector<int> Arr; void dfs(int x,int sum); int main() { Arr.clear(); cin>>S>>n; for (int i=1;i<=n;i++) cin>>Weight[i]; dfs(n,0); cout<<"Failed!"<<endl; return 0; } void dfs(int x,int sum) { /*cout<<x<<' '<<sum<<endl; for (int i=0;i<Arr.size();i++) cout<<Arr[i]<<' '; cout<<endl<<endl; */ if (x==0) return; if (Weight[x]+sum<=S) { Arr.push_back(x); if (Weight[x]+sum==S) { for (int i=Arr.size()-1;i>=0;i--) printf("%d\n",Weight[Arr[i]]); exit(0); } dfs(x-1,Weight[x]+sum); Arr.pop_back(); } dfs(x-1,sum); return; }


测评信息: