Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- void sumy( int number );
- template<class T>
- std::ostream& operator<<(std::ostream& os, const std::vector<T>& vec)
- {
- for( unsigned int i = 0; i < vec.size(); i++)
- {
- os<<vec[i]<<" ";
- }
- return os;
- }
- int main()
- {
- int t, x;
- std::cin>>t;
- while( t-- )
- {
- std::cin>>x;
- sumy( x );
- std::cout<<"\n";
- }
- return 0;
- }
- void sumy( int number )
- {
- int r = number%2 == 0 ? number-1 : number;
- std::vector< int > stack;
- stack.push_back( r );
- int suma = r;
- while( stack.empty() == false )
- {
- if( suma == number )
- {
- std::cout<<stack<<"\n";
- while( stack.empty() == false && stack.back() == 1 )
- {
- suma -= stack.back();
- stack.pop_back();
- }
- if( stack.empty() == false )
- {
- stack.back() = stack.back() - 2;
- r = stack.back();
- suma -= 2;
- }
- }
- else if( suma + r > number )
- {
- r -= 2;
- }
- else if( suma + r <= number )
- {
- stack.push_back( r );
- suma += r;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement