NYOJ927The partial sum problem
2014-04-01 18:03
323 查看
The partial sum problem
时间限制:1000 ms | 内存限制:65535 KB难度:3
描述One day,Tom’s girlfriend give him an array A which contains N integers and asked him:Can you choose some integers from the N integers and the sum of them is equal to K.
输入There are multiple test cases.
Each test case contains three lines.The first line is an integer N(1≤N≤20),represents the array contains N integers. The second line contains N integers,the ith integer represents A[i](-10^8≤A[i]≤10^8).The third line contains an integer K(-10^8≤K≤10^8).
输出If Tom can choose some integers from the array and their them is K,printf ”Of course,I can!”; other printf ”Sorry,I can’t!”.
#include "stdio.h" #include "stdlib.h" #include "string.h" int N, P, a[25]; int Mcmp(const void *_a, const void *_b) { int * a = (int *)_a; int *b = (int *)_b; return *a-*b; } int dfs(int s, int sum) { if(sum == P) return 1; if(s == N ||(P>0&&a[s] > P)||(sum>0&&sum > P)) return 0; if(dfs(s+1, sum+a[s])) return 1; else return dfs(s+1, sum); } int main(int argc, char *argv[]) { int i; while(scanf("%d", &N) != EOF) { for(i = 0; i < N; i++) scanf("%d", &a[i]); scanf("%d", &P); qsort(a, N, sizeof(int), Mcmp); if(dfs(0, 0)) printf("Of course,I can!\n"); else printf("Sorry,I can't!\n"); } return 0; }
相关文章推荐
- nyoj-172-小珂的图表
- NYOJ 题目8 一种排序
- nyoj 135 取石子(二) 【NIM】
- NYOJ 257 郁闷的C小加(一)
- NYOJ-228 士兵杀敌5
- nyoj 1057 寻找最大数(三) 贪心
- nyoj27水池数目
- nyoj-12-喷水装置(二)
- nyoj 16 矩形嵌套
- NYOJ 99 单词拼接
- nyoj24水池数目
- NYoj 1102 Fibonacci数列
- NYOJ 6-喷水装置1
- NYOJ 570欧拉函数求和(欧拉函数&&数论入门)
- Nyoj 城市平乱(图论)
- NYOJ-21-三个水杯(bfs搜索)
- NYOJ 119士兵杀敌(三)(RMQ问题)(ST表)
- nyoj-255-C小加之 随机数
- nyoj 14 会场安排问题 (贪心(时间区间))
- NYOj 264 国王的魔镜