// Header file: GcdProblemQAI.hpp
// Description: Implementation: Gcd problem, query-command interface, iterative.
// Date: 07-11-22 Khu 2011-05-12 Khu Destructor added.

#ifndef GCD_PROBLEM_QAI
#define GCD_PROBLEM_QAI

#include "DivisibleProblemQAI.hpp"
#include "GcdSolution.hpp"

	class GcdProblemQAI : public DivisibleProblemQAI
	{
		protected:
			GcdSolution * _solution;
			
            int _p, _q, r, s;
            
			void check_solvability ();
			void divide ();
			
		public:
			GcdSolution & solution () const {return *_solution;}
			
			int p () const {return _p;}
			int q () const {return _q;}
			
            virtual void set (int new_p, int new_q);
 			
 			GcdProblemQAI ();
            
            virtual ~GcdProblemQAI ();
	};

#endif // GCD_PROBLEM_QAI
