RMQ+1/-1算法

RMQ+1/-1问题要求数列中相邻两个元素相差+1或-1。利用这个限定条件可以使该算法复杂度总体上达到<O(n),O(1)>。具体做法是:

1) 设数列A的大小为n,先对数列A分组,每组大小为b=1/2.logn (之所以这样分是为了将预处理复杂度从O(nlogn)降为O(n)),共分为n/b个组;

以下第2到第4步完成RMQ+1/-1问题的预处理阶段(参考以下实现中的preprocess方法)。

2)生成O(sqrt(n))个LU表P[][]和一个block类型数组T[]: 对每个组内部进行预处理(inblock preprocessing)(参考以下实现中的makeLUTable方法),采用的方法是用动态规划加速的蛮立法,组内预处理的结果是生成2^(b-1)个不同组的lookup table(LU表),这里之所以只需要处理2^(b-1)个不同组(姑且把这些组叫做基本blocks)就是利用了"数列中相邻两个元素相差+1或-1"这个特点,由于2^(b-1)相当于O(sqrt(n))数量级,因此inblock预处理组的数量是很小的,由于将上三角形状的LU表压缩存储为一维表L,因此每一个block的LU表占的存储空间可以从b^2降至(b+1)*b/2。需要注意的是,每个block的LU表存储的只是该组的最小元素在该组内部的下标值,因此在调用queryLUTable方法进行组内查询(inblock query)时还需要加一个偏移量offset,将查询的结果转化为数列A的下标值(参考以下实现中的queryLUTable方法)。

这一步操作的复杂度为O((2^(b-1)) * (b+1)*b/2) = O(n)。

由于在组内查询时需要将n/b个blocks映射到2^(b-1)个基本blocks(多对一映射),因此还需要计算每一个block的类型数组T[],计算细节参考以下实现中的computeBlockType方法。计算过程使用Horner规则。这一步操作的复杂度为O(n)。

另外,在第一步的分组中,最后一个block大小可能比b小,这时还需要对该组进行特殊处理。

3)生成每个组的代表元素min值(注:每一个组可以看成一个等价类)的下标数组B[]: 利用inblock预处理的结果找出每一个block的最小元素的下标值(由于区间查询使用的是queryLUTable方法,该下标是数列A的下标值,而不是block内部的下标值,这正是我们需要得到的下标值),而不需要扫描整个block来找min值。需要注意的是,最后一个block大小小于b的情况,这时区间查询应该是start...n-1而不是start...end (start和end是该block的起始和结束位置下标值,并且end>n-1)。

这一步生成的结果B[]用于下面一步的组间预处理(outbock preprocessing)中。

4)利用第3步中的数组B生成组间稀疏表M[]: 采用ST(Sparse Table)算法,计算细节参考以下实现中的outBlockPreprocess方法。这一步操作的复杂度为O(n/b*log(n/b))=O(n)。

上面2-4步完成的是预处理,预处理总的复杂度为O(n)。

5)接下来进行查询(参考以下实现中的query方法)。查询分两个cases:

case a)如果查询区间p..q刚好落在一个block中,可以直接调用queryLUTable方法查询得出结果。由于使用lookup table,这一步的复杂度为O(1)。

case b)如果查询区间p..q跨越两个或以上的blocks,则针对第一个和最后一个block使用queryLUTable方法查询得出各自最小值的下标,这一步的复杂度为O(1)。然后对中间跨越的那些blocks使用组间查询(参考以下实现中的outBlockQuery方法),这一步的复杂度等于ST算法中的O(1)。然后比较这三个最小值下标,将他们的最小值对应的下标作为结果返回。


需要注意几点:

1)分组大小为b=1/2.logn,可以将该算法预处理复杂度从普通ST算法的O(nlogn)降到O(n),即去除对数因子。

2)LU表是基本表,因此该表中存储的下标值是表内部的下标值(即不依赖于任何具体的block),这不同于数列A的下标。因此在查询时需要偏移。

3) 下标数组B[]也叫做概要数组(summary array),如果在组间查询时将每一个block看成一个等价类,那么B中每一个元素相当于对应block这个等价类中的代表元素。

4)最后一个block可能需要单独处理:将不足一个block的元素扩展为一个整的block。但是在查询阶段,查询区间p...q不会超越数列A的范围0...n-1。

5)总体复杂度是<O(n),O(1)>,因此相比ST算法,该算法是最佳的选择。虽然RMQ+1/-1具有特殊性,但是一般的RMQ问题也可以在O(n)时间内转化为RMQ+1/-1问题,因此一般的RMQ问题也可以达到<O(n),O(1)>的复杂度。


实现:

/**
 * 
 * An algorithm to solve RMQ+1/-1 problem
 * time complexity: <O(n),O(1)>
 * 
 *  
 * Copyright (c) 2011 ljs (http://blog.csdn.net/ljsspace/)
 * Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php) 
 * 
 * @author ljs
 * 2011-08-04
 *
 */ 
public class MinusOrPlusOne_RMQ {
	private int blocksize;
	private int blockcount;
	
	//block type
	private int[] T;
	//block LookUp table
	private int[][] P;
	
	//out-of-block sparse table 
	//the first-dimension indices are block IDs
	private int[][] M;
	
	//check if A is valid +1/-1 RMQ 
	private void sanityCheck(int[] A) throws Exception{
		for(int i=1;i<A.length;i++){
			int diff = A[i] - A[i-1];
			if(!(diff==1 || diff==-1))
				throw new Exception("illegal +1/-1 RMQ problem!");
		}
	}
	
	//output: blocksize, blockcount, T[], P[][], M
	public void preprocess(int[] A) throws Exception {
		sanityCheck(A);
		
		int n = A.length;
		 
		int paddingsize = 0;	

		// grouping into logn/2 sized blocks
		int b = (int) (Math.log(n) / Math.log(2)) >> 1;
		if(b==0){
			b = n;	//small problem
		}
		int count = (int) Math.ceil(n / (double)b);
		this.blocksize = b;
		this.blockcount = count;

		// padding the last block
		int endblocksize = n - b * (count - 1);
		if (endblocksize > 0 && endblocksize < b) {
			paddingsize = b - endblocksize;
		}

		
		
		//step 1: in-block preprocess
		//the size of LU table (one-dimensional)
		int size = b*(b+1)/2;
		
		int start = 0; // j is the index of A
		int end = -1;
		T = new int[count];
		int blockTypesCount = 1<<(b-1);
		P = new int[blockTypesCount][size];
		int[] B = new int[count]; //used in ST algorithm: the min-value array for each block
		boolean[] pDone =new boolean[blockTypesCount];
		
		int fullblockscnt = count;
		if(paddingsize>0){
			fullblockscnt = count - 1;
		}		
		for (int i = 0; i < fullblockscnt; i++) {
			start = end+1;
			end = (i+1)*b-1;
			//compute the type of the block 
			int type = computeBlockType(A,start,end);	
			T[i] = type;
			if(!pDone[type]){
				//if LU table is not done yet for this type of block
				P[type] = makeLUTable(b,A,start,size);		
				pDone[type]=true;
			}			
			B[i] = queryLUTable(b,start,start,end,type);			
		}
		//the end block
		if(paddingsize>0){
			start = end+1;
			end = count*b-1;
			
			//extend the end block
			int actualsize = n-start;
			int[] D = new int[b];
			System.arraycopy(A, start, D, 0, actualsize); 
			for (int k = actualsize; k < b; k++) {
				D[k] = D[k - 1] + 1;
			}			
			
			int type = computeBlockType(D,0,b-1);	
			T[count-1] = type;
			if(!pDone[type]){
				P[type] = makeLUTable(b,D,0,size);		
				pDone[type]=true;
			}	
			//the min-index from start...n-1, not start...end
			B[count-1] = queryLUTable(b,start,start,n-1,type);		
		}
		
		//step 2: Sparse table algorithm applied to out-of-blocks		
		this.M = outBlockPreprocess(B,A,count);
	}
	
	//return the index
	public int query(int[] A,int p,int q){
		if(q<p){
			//swap  
			int tmp=p;p=q;q=tmp;
		}
		
		int start = 0; // j is the index of A
		int end = -1;
		int s = 0,t=0; //i..j for ST algorithm
		int startMin=-1,endMin=-1; //the start block and end block's min index
		for (int i = 0; i < this.blockcount; i++) {
			start = end+1;
			end = (i+1)*this.blocksize-1;
			if(p>=start && q<=end){
				//within a block
				return queryLUTable(blocksize,start,p,q,T[i]);
			}else if(p>=start && p<=end){
				startMin = queryLUTable(blocksize,start,p,end,T[i]);
				s=i+1;
			}else if(q<=end && q>=start){
				endMin = queryLUTable(blocksize,start,start,q,T[i]);
				t=i-1;
				break;
			}
		}
		int minIndex = startMin;
		
		if(s<=t){
			int outBlocksMin = outBlockQuery(A,s,t);
			if(A[startMin]>A[outBlocksMin]){
				minIndex = outBlocksMin;
			}
		}
		if(A[minIndex]>A[endMin]){
			minIndex = endMin;
		}
		return minIndex;
	}
	
	//ST: O(1) for querying
	//precondition: s<=t
	private int outBlockQuery(int[] A,int s,int t){
		int k = (int)(Math.log(t-s+1)/Math.log(2));
		//the first interval
		int mina = M[s][k];
		int minb = M[t-(1<<k)+1][k];
		if(A[mina]<=A[minb])
			return mina;
		else
			return minb;
	}
	
	private int[][] outBlockPreprocess(int[] B,int[] A,int count){
		//floor value
		int maxJ=(int)(Math.log(count)/Math.log(2));
		 
		int[][] M = new int[count][maxJ+1];
		
		//initial condition for dynamic programming: the RMQ for interval length=1
		for (int i = 0; i < count; i++)
	          M[i][0] = B[i];
		
		//dynamic programming: compute values from smaller(j=1) to bigger intervals
	    for (int j = 1; j<=maxJ; j++){
	        for (int i = 0; i + (1 << j) - 1 < count; i++){
	        	int nexti = i + (1 << (j - 1));
	            if (A[M[i][j - 1]] <= A[M[nexti][j - 1]])
	                M[i][j] = M[i][j - 1];
	            else
	                M[i][j] = M[nexti][j - 1];
	        }
	    }
	    return M;
	}
	private int computeBlockType(int[] D,int start,int end){	
		int sum = 0;
		//use Horner's rule
		for(int i=start+1;i<=end;i++){
			int diff = D[i]-D[i-1];
			if(diff==1){//0 when diff=+1
				sum <<= 1;
			}else{//1 when diff=-1
				sum = (sum << 1) + 1;
			}				
		}
		return sum;
	}
 
	//return the index  
	//precondition: i<=j
	private int queryLUTable(int blocksize,int offset,int i,int j,int type){
		i -= offset; j-=offset;
		int[] L = P[type];
		int index = blocksize*i - (i-1)*i/2 + (j-i);
		return L[index]+offset;
	}
	//use naive method to compute the lookup table for a block
	//the return index is relative to the block itself
	private int[] makeLUTable(int blocksize, int[] D,int offset,int size) {
 		int[][] Q = new int[blocksize][blocksize];
		for (int i = 0; i < blocksize; i++)
			Q[i][i] = i;
		for (int i = 0; i < blocksize; i++)
			for (int j = i + 1; j < blocksize; j++)
				if (D[Q[i][j - 1]+offset] <= D[j+offset])
					Q[i][j] = Q[i][j - 1];
				else
					Q[i][j] = j;
		//convert to one-dimension array		
		int[] L = new int[size];
		int k=0;
		for(int i=0;i<blocksize;i++){
			for(int j=i;j<blocksize;j++,k++){
				L[k] = Q[i][j];
			}
		}
		return L;
	}
	
	private void reportLUTable(int[] A){
		System.out.format("%n***********************%n");
		for(int x=0;x<A.length;x++){
			System.out.format("%d..[%d-%d]",x,x,A.length-1);
			for(int y=x;y<A.length;y++){
				int p = query(A,x,y);				
				System.out.format(" %d/%d",A[p],p);
			}
			System.out.println();
		}	
		
	}

	public static void main(String[] args) throws Exception {

		int[] A = new int[]{3,2,3};
		MinusOrPlusOne_RMQ mpoRMQ = new MinusOrPlusOne_RMQ();
		mpoRMQ.preprocess(A);
		mpoRMQ.reportLUTable(A);
		
		
		A = new int[]{1,0,1,2};
		mpoRMQ = new MinusOrPlusOne_RMQ();
		mpoRMQ.preprocess(A);
		mpoRMQ.reportLUTable(A);
		
		A = new int[]{1,0,1,0};
		mpoRMQ = new MinusOrPlusOne_RMQ();
		mpoRMQ.preprocess(A);
		mpoRMQ.reportLUTable(A);
		
		
		A = new int[] { 0, 1, 0, 1, 2, 3, 2, 3, 2, 1, 2, 3, 2, 3, 2, 1, 0 };
		mpoRMQ = new MinusOrPlusOne_RMQ();
		mpoRMQ.preprocess(A);
		
		System.out.format("%n***********************%n");		
		int i=5,j=11;		
		int min = mpoRMQ.query(A,i,j);
		System.out.format("RMQ for A[%d..%d]: A[%d]=%d", i,j,min,A[min]);
		
		System.out.format("%n***********************%n");		
		j=5;
		i=11;		
		min = mpoRMQ.query(A,i,j);
		System.out.format("RMQ for A[%d..%d]: A[%d]=%d", i,j,min,A[min]);
		
		System.out.format("%n***********************%n");		
		i=4;
		j=16;		
		min = mpoRMQ.query(A,i,j);
		System.out.format("RMQ for A[%d..%d]: A[%d]=%d", i,j,min,A[min]);
		
		System.out.format("%n***********************%n");
		mpoRMQ.reportLUTable(A);
		
		
		
		A = new int[]{ 
				10,11,12,13,12,11,10,9,10,11,  //0..9
				12,13,14,15,14,15,14,15,16,17, //10..19
				16,15,14,13,12,11,10,9,8,7,    //20..29
				8,9,10,11,12,13,12,11,10,9,    //30..39
				10,11,12,13,14,15,14,15,14,15, //40..49
				16,17,16,15,14,13,12,11,10,9,  //50..59
				8,7,8,9,10,11,12,13,12,11,     //60..69
				10,9,10,11,12,13,14,15,14,15,  //70..79
				14,15,16,17,16,15,14,13,12,11, //80..89
				10,9,8,7,8,9,10,11,12,13,14};     //90..100
		mpoRMQ = new MinusOrPlusOne_RMQ();
		mpoRMQ.preprocess(A);
		mpoRMQ.reportLUTable(A);
	}

}


测试输出:


***********************
0..[0-3] 1/0 1/0 1/0 1/0
1..[1-3] 2/1 2/1 2/1
2..[2-3] 3/2 3/2
3..[3-3] 4/3

***********************
0..[0-3] 1/0 0/1 0/1 0/1
1..[1-3] 0/1 0/1 0/1
2..[2-3] 1/2 1/2
3..[3-3] 2/3

***********************
0..[0-3] 1/0 0/1 0/1 0/1
1..[1-3] 0/1 0/1 0/1
2..[2-3] 1/2 0/3
3..[3-3] 0/3

***********************
RMQ for A[5..11]: A[9]=1
***********************
RMQ for A[11..5]: A[9]=1
***********************
RMQ for A[4..16]: A[16]=0
***********************

***********************
0..[0-16] 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0
1..[1-16] 1/1 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2
2..[2-16] 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2 0/2
3..[3-16] 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 0/16
4..[4-16] 2/4 2/4 2/4 2/4 2/4 1/9 1/9 1/9 1/9 1/9 1/9 1/9 0/16
5..[5-16] 3/5 2/6 2/6 2/6 1/9 1/9 1/9 1/9 1/9 1/9 1/9 0/16
6..[6-16] 2/6 2/6 2/6 1/9 1/9 1/9 1/9 1/9 1/9 1/9 0/16
7..[7-16] 3/7 2/8 1/9 1/9 1/9 1/9 1/9 1/9 1/9 0/16
8..[8-16] 2/8 1/9 1/9 1/9 1/9 1/9 1/9 1/9 0/16
9..[9-16] 1/9 1/9 1/9 1/9 1/9 1/9 1/9 0/16
10..[10-16] 2/10 2/10 2/10 2/10 2/10 1/15 0/16
11..[11-16] 3/11 2/12 2/12 2/12 1/15 0/16
12..[12-16] 2/12 2/12 2/12 1/15 0/16
13..[13-16] 3/13 2/14 1/15 0/16
14..[14-16] 2/14 1/15 0/16
15..[15-16] 1/15 0/16
16..[16-16] 0/16

***********************
0..[0-100] 10/0 10/0 10/0 10/0 10/0 10/0 10/0 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
1..[1-100] 11/1 11/1 11/1 11/1 11/1 10/6 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
2..[2-100] 12/2 12/2 12/2 11/5 10/6 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
3..[3-100] 13/3 12/4 11/5 10/6 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
4..[4-100] 12/4 11/5 10/6 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
5..[5-100] 11/5 10/6 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
6..[6-100] 10/6 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
7..[7-100] 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 9/7 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
8..[8-100] 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 10/8 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
9..[9-100] 11/9 11/9 11/9 11/9 11/9 11/9 11/9 11/9 11/9 11/9 11/9 11/9 11/9 11/9 11/9 11/9 11/9 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
10..[10-100] 12/10 12/10 12/10 12/10 12/10 12/10 12/10 12/10 12/10 12/10 12/10 12/10 12/10 12/10 12/10 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
11..[11-100] 13/11 13/11 13/11 13/11 13/11 13/11 13/11 13/11 13/11 13/11 13/11 13/11 13/11 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
12..[12-100] 14/12 14/12 14/12 14/12 14/12 14/12 14/12 14/12 14/12 14/12 14/12 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
13..[13-100] 15/13 14/14 14/14 14/14 14/14 14/14 14/14 14/14 14/14 14/14 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
14..[14-100] 14/14 14/14 14/14 14/14 14/14 14/14 14/14 14/14 14/14 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
15..[15-100] 15/15 14/16 14/16 14/16 14/16 14/16 14/16 14/16 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
16..[16-100] 14/16 14/16 14/16 14/16 14/16 14/16 14/16 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
17..[17-100] 15/17 15/17 15/17 15/17 15/17 14/22 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
18..[18-100] 16/18 16/18 16/18 15/21 14/22 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
19..[19-100] 17/19 16/20 15/21 14/22 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
20..[20-100] 16/20 15/21 14/22 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
21..[21-100] 15/21 14/22 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
22..[22-100] 14/22 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
23..[23-100] 13/23 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
24..[24-100] 12/24 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
25..[25-100] 11/25 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
26..[26-100] 10/26 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
27..[27-100] 9/27 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
28..[28-100] 8/28 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
29..[29-100] 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29 7/29
30..[30-100] 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 8/30 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
31..[31-100] 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 9/31 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
32..[32-100] 10/32 10/32 10/32 10/32 10/32 10/32 10/32 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
33..[33-100] 11/33 11/33 11/33 11/33 11/33 10/38 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
34..[34-100] 12/34 12/34 12/34 11/37 10/38 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
35..[35-100] 13/35 12/36 11/37 10/38 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
36..[36-100] 12/36 11/37 10/38 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
37..[37-100] 11/37 10/38 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
38..[38-100] 10/38 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
39..[39-100] 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 9/39 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
40..[40-100] 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 10/40 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
41..[41-100] 11/41 11/41 11/41 11/41 11/41 11/41 11/41 11/41 11/41 11/41 11/41 11/41 11/41 11/41 11/41 11/41 11/41 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
42..[42-100] 12/42 12/42 12/42 12/42 12/42 12/42 12/42 12/42 12/42 12/42 12/42 12/42 12/42 12/42 12/42 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
43..[43-100] 13/43 13/43 13/43 13/43 13/43 13/43 13/43 13/43 13/43 13/43 13/43 13/43 13/43 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
44..[44-100] 14/44 14/44 14/44 14/44 14/44 14/44 14/44 14/44 14/44 14/44 14/44 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
45..[45-100] 15/45 14/46 14/46 14/46 14/46 14/46 14/46 14/46 14/46 14/46 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
46..[46-100] 14/46 14/46 14/46 14/46 14/46 14/46 14/46 14/46 14/46 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
47..[47-100] 15/47 14/48 14/48 14/48 14/48 14/48 14/48 14/48 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
48..[48-100] 14/48 14/48 14/48 14/48 14/48 14/48 14/48 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
49..[49-100] 15/49 15/49 15/49 15/49 15/49 14/54 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
50..[50-100] 16/50 16/50 16/50 15/53 14/54 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
51..[51-100] 17/51 16/52 15/53 14/54 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
52..[52-100] 16/52 15/53 14/54 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
53..[53-100] 15/53 14/54 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
54..[54-100] 14/54 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
55..[55-100] 13/55 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
56..[56-100] 12/56 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
57..[57-100] 11/57 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
58..[58-100] 10/58 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
59..[59-100] 9/59 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
60..[60-100] 8/60 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
61..[61-100] 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61 7/61
62..[62-100] 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 8/62 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
63..[63-100] 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 9/63 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
64..[64-100] 10/64 10/64 10/64 10/64 10/64 10/64 10/64 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
65..[65-100] 11/65 11/65 11/65 11/65 11/65 10/70 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
66..[66-100] 12/66 12/66 12/66 11/69 10/70 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
67..[67-100] 13/67 12/68 11/69 10/70 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
68..[68-100] 12/68 11/69 10/70 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
69..[69-100] 11/69 10/70 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
70..[70-100] 10/70 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
71..[71-100] 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 9/71 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
72..[72-100] 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 10/72 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
73..[73-100] 11/73 11/73 11/73 11/73 11/73 11/73 11/73 11/73 11/73 11/73 11/73 11/73 11/73 11/73 11/73 11/73 11/73 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
74..[74-100] 12/74 12/74 12/74 12/74 12/74 12/74 12/74 12/74 12/74 12/74 12/74 12/74 12/74 12/74 12/74 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
75..[75-100] 13/75 13/75 13/75 13/75 13/75 13/75 13/75 13/75 13/75 13/75 13/75 13/75 13/75 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
76..[76-100] 14/76 14/76 14/76 14/76 14/76 14/76 14/76 14/76 14/76 14/76 14/76 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
77..[77-100] 15/77 14/78 14/78 14/78 14/78 14/78 14/78 14/78 14/78 14/78 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
78..[78-100] 14/78 14/78 14/78 14/78 14/78 14/78 14/78 14/78 14/78 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
79..[79-100] 15/79 14/80 14/80 14/80 14/80 14/80 14/80 14/80 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
80..[80-100] 14/80 14/80 14/80 14/80 14/80 14/80 14/80 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
81..[81-100] 15/81 15/81 15/81 15/81 15/81 14/86 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
82..[82-100] 16/82 16/82 16/82 15/85 14/86 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
83..[83-100] 17/83 16/84 15/85 14/86 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
84..[84-100] 16/84 15/85 14/86 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
85..[85-100] 15/85 14/86 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
86..[86-100] 14/86 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
87..[87-100] 13/87 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
88..[88-100] 12/88 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
89..[89-100] 11/89 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
90..[90-100] 10/90 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
91..[91-100] 9/91 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
92..[92-100] 8/92 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
93..[93-100] 7/93 7/93 7/93 7/93 7/93 7/93 7/93 7/93
94..[94-100] 8/94 8/94 8/94 8/94 8/94 8/94 8/94
95..[95-100] 9/95 9/95 9/95 9/95 9/95 9/95
96..[96-100] 10/96 10/96 10/96 10/96 10/96
97..[97-100] 11/97 11/97 11/97 11/97
98..[98-100] 12/98 12/98 12/98
99..[99-100] 13/99 13/99
100..[100-100] 14/100


你可能感兴趣的:(Algorithm,算法,exception,table,query,Intervals)