SRM331 div1 medium

2^10は使わなかった。

#include <algorithm>
#include <vector>
using namespace std;

class Shopping 
{
	public:
	int minNumber(int X, vector <int> values) 
	{
		sort(values.begin(),values.end());
		if(values[0]!=1)
		{
			return -1;
		}
		else
		{
			int r=1;
			int s;
			for(s=1;s<X;)
			{
				int n=0;
				while(n+1<values.size() && values[n+1]<=s+1)
					n++;
				s+=values[n];
				r++;
			}
			return r;
		}
	}
};