1 条题解
-
0
C++ :
#include <cstdio> static int N; static long long M, cnt; static long long a[15]; void dfs(int len, long long *cur){ if(len == 1){ if(cur[0] == M) cnt++; return; } for(int i = 0; i + 1 < len; i++){ long long nxt[15]; for(int j = 0; j < len; j++) nxt[j] = cur[j]; nxt[i] = cur[i] - cur[i + 1]; for(int j = i + 1; j + 1 < len; j++) nxt[j] = cur[j + 1]; dfs(len - 1, nxt); } } int main(){ if(scanf("%d", &N) != 1) return 0; if(scanf("%lld", &M) != 1) return 0; for(int i = 0; i < N; i++) if(scanf("%lld", &a[i]) != 1) return 0; dfs(N, a); printf("%lld\n", cnt); return 0; }
- 1
信息
- ID
- 2833
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者