int rob(vector<int>& nums) { if(nums.empty()) return 0; if (nums.size() < 4) return *(max_element(nums.begin(), nums.end())); vector<int> tmp1(nums.begin() + 1, nums.end()); int max1 = Sol(tmp1); vector<int> tmp2(nums.begin() + 2, nums.end() - 1); int max2 = nums[0] + Sol(tmp2); return max(max1, max2); }
vector<vector<int>> subsets(vector<int>& nums) { vector<vector<int>> res; vector<int> out; for (int k = 0; k <= nums.size(); ++k) Sol(k, 0, nums, out, res); return res; }
// dump statistics and weighted average void dump(std::ostream& os, std::string msg="") const throw(Exception) { try { os << "Simple statistics on " << msg << std::endl << std::fixed << std::setprecision(3); if(N > 0) { os << " " << lab[0] << " N: " << S[0].N() << std::fixed << std::setprecision(4) << " Ave: " << S[0].Average() << " Std: " << S[0].StdDev() << " Min: " << S[0].Minimum() << " Max: " << S[0].Maximum() << std::endl; os << " " << lab[1] << " N: " << S[1].N() << std::fixed << std::setprecision(4) << " Ave: " << S[1].Average() << " Std: " << S[1].StdDev() << " Min: " << S[1].Minimum() << " Max: " << S[1].Maximum() << std::endl; os << " " << lab[2] << " N: " << S[2].N() << std::fixed << std::setprecision(4) << " Ave: " << S[2].Average() << " Std: " << S[2].StdDev() << " Min: " << S[2].Minimum() << " Max: " << S[2].Maximum() << std::endl; os << "Weighted average " << msg << std::endl; Matrix<double> Cov(inverseSVD(sumInfo)); Vector<double> Sol(Cov * sumInfoState); os << std::setw(14) << std::setprecision(4) << Sol << " " << N; } else os << " No data!"; } catch(Exception& e) { GPSTK_RETHROW(e); } }
void Sol(int k, int level, vector<int>& nums, vector<int>& out, vector<vector<int>>& res) { if (out.size() == k) { res.push_back(out); return; } for (int i = level; i < nums.size(); ++i) { out.push_back(nums[i]); Sol(k, i+1, nums, out, res); out.pop_back(); } }
void affichage() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glShadeModel(GL_SMOOTH); glLoadIdentity(); glLightiv(GL_LIGHT0, GL_POSITION, LightPos); glLightiv(GL_LIGHT1, GL_POSITION, LightPos2); glOrtho(-zoom, zoom, -zoom, zoom, -zoom, zoom); glRotatef(angley, 1.0, 0.0, 0.0); glRotatef(anglex, 0.0, 1.0, 0.0); Sol(); DessinPerso(); glutSwapBuffers(); }