public class ResourceMgr {
	private SemaphoreGroup resources;
	
	public ResourceMgr(int initV[]) {
		resources = new SemaphoreGroup(initV.length);
		resources.changeValues(initV);
	} //constructor
	
	public void request(int[] requestedAmount) { 
		//add dispatching strategy here!
		int tmp[] = new int[requestedAmount.length];
		for (int i=0; i<requestedAmount.length; i++) 
			tmp[i] = -requestedAmount[i];
		resources.changeValues(tmp);
	} //request()
	
	public void release(int[] releasedAmount) {
		resources.changeValues(releasedAmount);
	} //release()
} //class ResourceMgr