Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
345199 | admin_cgn | 【2002年NOIP全国联赛普及组】选数 | C++ | 通过 | 100 | 274 MS | 260 KB | 580 | 2025-08-30 10:55:39 |
#include <bits/stdc++.h> inline bool isprime(int x) { if (x == 1) return false; for (int i = 2; i * i <= x; ++i) if (x % i == 0) return false; return true; } const int N = 25; int a[N], ans, n, k; void dfs(int now, int sum, int sid) { if (now == k) { if (isprime(sum)) ++ans; return ; } for (int i = sid; i <= n - k + now + 1; ++i) dfs(now + 1, sum + a[i], i + 1); return ; } int main() { scanf("%d%d", &n, &k); for (int i = 1; i <= n; ++i) scanf("%d", &a[i]); dfs(0, 0, 1); printf("%d\n", ans); return 0; }