USACO 2.3 Zero Sum (zerosum)

发布时间:2017-6-26 3:11:58 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"USACO 2.3 Zero Sum (zerosum)",主要涉及到USACO 2.3 Zero Sum (zerosum)方面的内容,对于USACO 2.3 Zero Sum (zerosum)感兴趣的同学可以参考一下。

//Main Idea: //Search by DFS; //In ASCII order means that cout the sum of string's ASCII value, and sort //them in ascending order; /* ID: haolink1 PROG: zerosum LANG: C++ */ //#include <iostream> #include <fstream> using namespace std; int num = 0; ofstream fout("zerosum.out"); void DFS(char* str,int depth); bool IsZeroSum(char* str); int main(){ ifstream fin("zerosum.in"); fin >> num; char str[] = "1 2 3 4 5 6 7 8 9"; //truncate string to only have first n numbers str[2*num-1] = '\0'; DFS(str,0); return 0; } void DFS(char* str,int depth){ if(depth == num-1){ if(IsZeroSum(str)){ for(int i = 0; i < 1+(num-1)*2; i++){ fout<<str[i]; } fout<<endl; } return; } char *p; for(p = " +-"; *p; p++){ str[1+depth*2] = *p; DFS(str,depth+1); } } bool IsZeroSum(char* str){ int sum = 0; int cur_value = 0; int sign = 1; for(char* p = str; *p ; p++){ switch(*p){ case ' ': break; case '+': case '-': sum += sign*cur_value; sign = *p == '+' ? 1 : -1; cur_value = 0; break; default: cur_value = cur_value*10 + *p - '0'; } } sum += sign*cur_value; return !sum; }

上一篇:Centos下解压rar、zip文件的方法
下一篇:php生成静态类html文件

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。