Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
55422 | ZZQ | T3 作业 | C++ | 运行超时 | 0 | 1000 MS | 260 KB | 609 | 2022-08-18 10:59:31 |
#include <bits/stdc++.h> using namespace std; const int Mod = 1e9 + 7; int n,m,k; int homework[501],now,ans; void DFS(int x,int remain,int cnt) { if(remain < 0) return; if(cnt == m) { ans++; if(ans > Mod) ans -= Mod; return; } for(int i = x;homework[i] <= remain && i <= n;i++) DFS(x,remain - homework[i],cnt + 1); } int main() { scanf("%d%d%d",&n,&m,&k); for(int i = 1,x;i <= n;i++) { scanf("%d",&x); if(x > k) continue; homework[++now] = x; } n = now; sort(homework + 1,homework + 1 + n); DFS(1,k - homework[1],0); printf("%d\n",ans); return 0; }