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;
 }
Example #3
0
      // 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();
     }
 }
Example #5
0
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();
}