hdu1258

来源:互联网 发布:php json unicode 编辑:程序博客网 时间:2024/06/06 20:23
#include<iostream>#include<stdio.h>#include<string>using namespace std;bool result;int t,n;int *a;int *s;void dfs(int *a,int *s,int sum,int c){int i;if(sum>t||c>n)return;else if(sum==t){result=true;int k;for(k=0;k<c;k++){if(k)printf("+");printf("%d",a[k]);}printf("\n");}elsefor(i=0;i<n;i++)if((!c||s[i]<=a[c-1])&&(!i||s[i]<s[i-1])){int c1=0,c2=0;int j;for(j=0;j<c;j++)if(a[j]==s[i])c1++;for(j=0;j<n;j++)if(s[i]==s[j])c2++;if(c1<c2){a[c]=s[i];dfs(a,s,sum+s[i],c+1);}}}int main(){while(scanf("%d%d",&t,&n)!=EOF,t&&n){int i;a=new int[n+1];s=new int[n+1];for(i=0;i<n;i++){scanf("%d",&s[i]);a[i]=0;}result=false;printf("Sums of %d:\n",t);int sum=0,c=0;dfs(a,s,sum,c);if(!result)printf("NONE\n");}return 0;}