static long getWinningPositionNum(int positionAStart, int positionAEnd, int positionBStart, int positionBEnd){
		long winningPositionNum = 0;
		int failingPositionStart;
		int failingPositionEnd;
		
		for (int i = positionAStart; i <= positionAEnd; i++){
			failingPositionStart = getFailingPositionStart(i);
			failingPositionEnd = getFailingPositionEnd(i, failingPositionStart);
			
//			for (int j = positionBStart; j <= positionBEnd; j++){
//				if (j < failingPositionStart || j > failingPositionEnd){
//					winningPositionNum ++;
//				}
//			}
			if (failingPositionStart > positionBStart){
				if (positionBEnd >= failingPositionStart){
					winningPositionNum += (failingPositionStart - positionBStart);
				} else {
					winningPositionNum += (positionBEnd - positionBStart) + 1;
				}
			} 
			
			if (failingPositionEnd < positionBEnd){
				if (positionBStart <= failingPositionEnd){
					winningPositionNum += (positionBEnd - failingPositionEnd);
				} else {
					winningPositionNum += (positionBEnd - positionBStart) + 1;
				}
			}
		}
		
		return winningPositionNum;
	}