#include #include #include #include #include #include #include using namespace std; #define FOR(i,n) for (int i=0;i<(int)n;i++) #define FORN(i,a,b) for (int i=a;i<=(int)b;i++) bool f(vector &v, int casenum) { vector res(v.size()+1); int max=0; int recordA=0; bool globalFound=false; FORN(a,1,v[0]) { bool found=true; res[0]=a; FORN(i,1,res.size()-1) { res[i]=v[i-1]-res[i-1]; if (res[i]<1) found=false; } if (found) //now find max product { int tmax=(int)accumulate (res.begin(), res.end(), 1, multiplies()); if (tmax>max) { max=tmax; recordA=a; globalFound=true; } } } if (!globalFound) { cout<<"Case "<>n && n!=0) { vector v(n); FOR(i,n) cin>>v[i]; f(v,casenum++); } return 0; }