Capacity Facility Location Problem

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/A_bigUncle/article/details/85220541

Capacity Facility Location Problem

CFLP

Capacity Facility Location Problem,即有容量限制的设施选址问题,更准确地说,这次解决的问题为 SSCFLP(Single Source Capacity Facility Location Problem),其对资源的分配更为严格:每个顾客只能由一个设施来服务。下面我们来更准确地描述这个问题:

  1. 给定 m 个工厂,n 个用户
  2. 每个工厂有容量 ci 、建设费用 fi ( 1 <= i <= m )
  3. 每个用户有需求 di (1 <= i <= n)
  4. 对于每个用户 i ,不同的设施 j 的服务费用不同,表示为 costij
  5. 每个用户只能由一个设施服务,即 Single Source

求建设设施和服务每一个用户的费用总和的最小值。

方案

从问题描述来看,我们大概就能看出它并不是个善茬,它没有办法像解 LeetCode 上的题一样,用上一个简单算法,就能准确地求解,而事实上,它确实也是个 NP 难问题,所以穷搜绝对是行不通的,无论时间、空间服务度都是爆炸性的。所以不妨试试人工智能课上学到的近似求解方法:爬山法、模拟退火法、遗传算法以及禁忌搜索等。在这次实验中,我将依次使用贪心算法、局部搜索法(爬山法)、模拟退火法来逐渐提高解的质量。

贪心算法

对于每个用户 i ,不同的设施 j 的服务费用不同,利用这一点,我们可以想到一个简单的贪心策略:依次遍历每个用户 m ,找到其服务费用最少的设施 i:

  • 如果设施 i 已开
    • 如果容量不足,寻找服务费用仅次于它的下一个设施 j
    • 如果容量充足,就选定 i
  • 如果设施 i 未开,找到对该用户服务费用最少且容量充足的已开设施 j
    • 如果 ( fj + costmi ) < costmj ,则选设施 i
    • 否则,选设施 j

局部搜索法

我先用上述贪心算法产生一个初始解,这样可以减少算法的收敛时间,事实上贪心算法得到的解质量很差,这也就不用担心一开始就陷入局部最优啦,不过最重要的还是怎么去配合这个初解搜索领域,我使用了 4 种邻域搜索策略:

  1. 选定两个顾客,交换他们的服务设施,邻域空间为 n(n-1)/2
  2. 选定两个顾客,然后反转他们的服务设施,例如 [1, 3, 4, 2],我选中了顾客0和顾客3,则结果为 [2,4,3,1],邻域空间为 n(n-1)/2
  3. 选定两个已开设施,交换它们的客户,邻域空间为 O(m(m-1)/2)
  4. 选定一个顾客,将其转移到其它设施(已开和未开都行)

前三种策略是在已固定建设哪些设施的情况下,对顾客选择进行优化;而最后一种则是进一步在设施选址空间上进行扩张,而在实验过程中,证明在添加第 4 种策略后,解的质量会更上一层楼!

每次随机采用其中一种策略搜索邻域,如果找到更好的解,则接收;否则更换策略,直至再无策略可用。

模拟退火

与局部搜索算法略微不同的地方在于:局部搜索不接受比当前解更差的解。模拟退火有一个跳出局部最优的机制:若搜索的解劣于当前解,以一定的概率(与温度有关,温度越高概率越大)接受该劣解。

模拟退火的框架伪代码如下:

while temperature > lower_bound
	for i=1:100
    new_solution = search()
    dcost = cost(new_solution) - cost(current_solution)
    if dcost < 0
    	current_solution = new_solution
    else 
      exp(-dcost / temperature) to receive new_solution
  temperature *= COOLING_RATE

效果

贪心只是我拿来做局部搜索或模拟退火的一个踏板,所以我们主要看看后两者的效果,因为时间不太够,模拟退火没有细致地去调参,只是根据经验去随意设置了一下,同时在跑的时候,发现如果每次搜索邻域都穷搜某种搜索策略的解空间,耗时是相当恐怖的,所以我就限制了一下。下面是每种算法跑5次,目前最优 是这15次中最优的一次,模拟退火有时不比局部搜索做得好,有可能是还未收敛,但是可以看到,有些测例都跑了10来分钟了。

如果想看最优解,请直接拉到本文的最下面。

Result(avg.) Time(s)
样例 目前最优 贪心 局部搜索 模拟退火 贪心 局部搜索 模拟退火
1 9929 16511 11579 10282 0 0 55
2 8928 12899 9803 9132 0 0 62
3 10420 18441 11604 10583 0 0 57
4 11811 22698 13116 12381 0 0 59
5 10209 17830 10561 10856 0 0 36
6 9025 12930 9679 9494 0 0 43
7 11204 20782 11726 11436 0 0 41
8 12334 23191 12833 13356 0 0 27
9 9543 13788 9849 9708 0 0 66
10 8778 11172 9102 8909 0 0 72
11 10221 20501 10468 10308 0 0 70
12 11397 21717 13049 11665 0 0 65
13 9271 17143 10588 9890 0 0 71
14 8113 12419 9001 8659 0 0 78
15 9955 16778 11502 10543 0 0 78
16 11805 23752 12232 12352 0 0 75
17 9297 18344 9993 9698 0 0 78
18 8482 12005 8808 8805 0 0 73
19 9804 18851 11202 10555 0 0 78
20 11890 22479 12402 12540 0 0 59
21 8826 16099 10114 9064 0 0 87
22 8375 11524 8859 8608 0 0 77
23 9956 17018 10803 10206 0 0 77
24 11015 22259 11794 11352 0 0 88
25 11630 18366 12073 13346 0 3 402
26 10575 17971 11573 12029 0 3 398
27 12675 18773 12795 13816 0 3 369
28 14642 25728 16824 16232 0 3 332
29 12630 21995 12932 13820 0 4 378
30 12109 17967 12658 12762 0 4 356
31 13628 27093 13765 15131 0 4 435
32 16054 29694 16129 20256 0 4 192
33 11620 17118 11647 14072 0 3 296
34 10928 17622 12332 11658 0 3 406
35 12200 17141 12286 15068 0 4 317
36 14878 22775 16029 16852 0 4 290
37 11120 15844 11120 13157 0 3 348
38 11297 15195 11361 12511 0 3 325
39 11901 17114 11902 13210 0 3 427
40 13717 24008 13752 15440 0 3 353
41 8573 13167 9546 8912 0 1 94
42 6629 11575 7738 7060 0 1 223
43 6171 9792 6430 6552 0 1 156
44 12374 18451 13174 13395 0 1 27
45 8883 15770 11415 9320 0 1 136
46 7250 13892 8888 7835 0 1 179
47 12685 16332 12712 12948 0 1 42
48 10027 14261 10632 10450 0 1 86
49 7769 12797 8979 8037 0 1 188
50 9090 17751 11050 10266 0 1 87
51 7832 14101 8700 8500 0 2 117
52 14609 22692 14664 15705 0 1 24
53 11501 22551 13895 13334 0 1 116
54 13973 21306 14144 14571 0 1 16
55 11213 17165 11270 11607 0 1 33
56 25124 59819 27108 31148 0 6 460
57 30710 79894 32541 34222 0 7 608
58 43147 91094 43499 47083 0 8 505
59 33837 80237 35415 39206 0 8 260
60 25244 60131 28786 28055 0 7 982
61 30486 77549 33256 37008 0 8 439
62 40912 85249 40932 49723 0 7 365
63 34003 75808 34060 42836 0 6 209
64 29000 53376 30956 32939 0 6 667
65 30425 77373 33441 34241 0 7 927
66 38756 82973 39061 42316 0 7 727
67 31497 71488 33885 37669 0 7 697
68 25423 57529 26849 31796 0 6 601
69 31741 75376 33173 35143 0 10 792
70 37340 82376 40269 43537 0 9 560
71 33110 77388 33281 37094 0 8 523

代码

贪心算法

void CFLP::greedySearch() {
  reset();
  for (int i = 0; i < numOfCustomers; ++i) {
    int index = findAvailableMinIndex(costForServing[i], i);
    facilityToServe[i] = index;
    restCapacityOfFacilities[index] -= demandOfCustomers[i];
  }

  if (!checkValid(openedFacilities, facilityToServe)) return;

  cost = computeCost(openedFacilities, facilityToServe);
}

int CFLP::findAvailableMinIndex(float *costs, int customer) {

  /* construct index for costs for all facilities */
  vector<pair<int, float> > indexAllCost = constructSortedIndexCost(fullList, costs);
  /* construct index for costs for opened facilities */
  vector<pair<int, float> > indexOpenedCost = constructSortedIndexCost(openedFacilities, costs);

  int index = 0;
  while (1) {
    int realIndex = indexAllCost[index].first;
    /* it's in opened facilities */
    if (openedFacilities[realIndex] == 1) {
      /* this facility's capacity is not enough */
      if (restCapacityOfFacilities[realIndex] < demandOfCustomers[customer]) 
        index++;
      /* it's enough */
      else 
        return realIndex;
    } 
    /* otherwise */
    else { 
      /* no opened facilities */
      if (indexOpenedCost.size() == 0) {
        openedFacilities[realIndex] = 1;
        return realIndex;
      }
      /* find avaliable faciliry to serve */
      int i = 0;
      while (i < indexOpenedCost.size()) {
        int realOpenedIndex = indexOpenedCost[i].first;
        if (restCapacityOfFacilities[realOpenedIndex] < demandOfCustomers[customer]) 
          i++;
        else 
          break;
      }
      /* no avaliable facility to serve */
      if (i == indexOpenedCost.size()) {
        openedFacilities[realIndex] = 1;
        return realIndex;
      }
      /* compare cost between (open_cost + serve_cost) and (opened_serve_cost) */
      if ((costOfFacilities[realIndex] + costs[realIndex]) <= indexOpenedCost[i].second) {
        openedFacilities[realIndex] = 1;
        return realIndex;
      } else {
        int realOpenedIndex = indexOpenedCost[i].first;
        return realOpenedIndex;
      }
    }
  }
}

局部搜索

void CFLP::localSearch() {
	reset();
  /* base on greedy search solution */
  greedySearch(); 

  int stable_times = 0;
  while (stable_times < 500) {
    int choice = rand() % 4;
    float oldCost = cost;
    switch(choice) {
      case 0:
        exchangeServe();
        break;
      case 1:
        inverse();
        break;
      case 2:
        exchangeCustomers();
        break;
      case 3:
        transfer();
        break;
    }
    if (cost < oldCost) stable_times = 0;
    else ++stable_times;
  }
}

模拟退火

/**
 * simulated annealing,
 * 
 * @params(it): initial temperature
 * @params(cr): cooling rate
 */
void CFLP::SA(float it, float cr) {
  reset();
  /* base on greedy search solution */
  greedySearch();

  float opt_cost = cost;
  vector<int> opt_openedFacilities = openedFacilities;
  vector<int> opt_facilityToServe = facilityToServe;

  temperature = it;
  cooling_rate = cr;
  int stable_times = 0;

  while (temperature > 0.1 && stable_times < 700) {
    for (int i = 0; i < 1000; ++i){
      int choice = rand() % 5;
      float oldCost = cost;
      switch(choice) {
        case 0:
          exchangeServe("sa");
          break;
        case 1:
          inverse("sa");
          break;
        case 2:
          exchangeCustomers("sa");
          break;
        case 3:
        case 4:
          transfer("sa");
          break;
      }

      if (oldCost == cost) ++stable_times;
      else {
        stable_times = 0;
        if (cost < opt_cost) {
          opt_cost = cost;
          opt_openedFacilities = openedFacilities;
          opt_facilityToServe = facilityToServe;
        }
      }
    }
    temperature *= cooling_rate;
  }

  openedFacilities = opt_openedFacilities;
  facilityToServe = opt_facilityToServe;
  cost = opt_cost;
}

完整代码还是移步 gayhub

目前最优解

1
9929
1 0 0 1 0 1 1 1 1 1 
5 7 8 3 9 9 5 6 3 0 6 6 0 9 6 9 5 0 7 9 7 6 3 5 6 9 5 9 0 3 3 8 5 0 3 7 9 3 6 6 5 7 8 8 5 7 0 3 5 6 

2
8928
1 0 1 1 1 1 1 1 1 1 
5 7 8 2 9 2 5 6 7 2 6 3 4 0 6 4 5 0 3 9 7 6 3 5 6 9 5 7 0 3 3 8 2 0 3 7 9 3 6 4 5 7 8 8 5 7 0 2 4 6

3
10420
1 0 1 1 0 1 1 1 1 0 
5 7 8 2 5 2 5 6 7 2 6 3 0 0 6 2 5 0 3 2 7 6 3 5 6 2 5 7 0 3 3 8 2 0 3 7 6 3 6 8 5 7 8 2 5 7 0 2 5 6 

4
11811
1 0 1 1 0 1 1 1 0 0 
5 7 0 2 5 2 5 6 7 2 6 3 3 0 6 2 5 0 3 2 7 6 3 5 6 2 5 7 0 3 3 0 2 0 3 7 6 3 6 6 5 7 0 2 5 7 0 2 5 6

5
10209
1 1 1 1 0 1 1 1 1 1 
5 7 8 2 9 9 5 6 3 2 6 3 0 0 6 9 2 0 7 9 8 6 3 5 6 9 5 7 0 3 3 8 2 1 3 7 9 3 6 8 5 7 8 8 1 7 0 2 0 6

6
9025
1 0 1 1 1 1 1 1 1 1 
5 7 8 2 9 9 5 6 3 2 6 3 4 0 6 4 5 0 7 9 7 6 3 5 6 9 8 9 0 3 3 8 2 0 3 7 9 3 6 4 5 7 8 8 5 7 0 2 4 6

7
11204
1 0 1 1 1 1 1 1 1 1 
5 7 8 2 7 2 5 6 7 2 6 3 4 0 6 9 2 0 7 9 7 6 3 5 6 4 5 7 0 3 3 8 2 0 3 8 9 3 9 4 5 7 8 8 5 7 0 2 4 6 

8
12334
0 0 1 1 1 1 1 1 1 1 
5 7 8 2 9 2 5 6 3 2 6 3 4 9 6 4 5 4 2 9 7 6 3 5 6 9 8 7 4 3 3 8 2 4 3 7 9 3 6 4 5 7 8 8 5 7 8 2 4 6 

9
9543
0 1 0 1 0 1 1 0 1 1 
5 5 8 8 9 9 5 6 3 3 6 6 3 9 6 9 5 6 3 9 8 6 3 5 6 9 5 9 1 3 3 8 5 1 3 8 9 3 6 8 5 1 8 8 1 3 8 3 5 6 

10
8778
1 0 0 1 1 1 1 1 1 1 
5 7 8 8 9 9 5 6 3 0 6 3 4 0 6 4 5 0 3 9 7 6 3 5 6 9 5 7 0 3 3 8 5 0 3 7 9 3 6 4 5 7 8 8 5 7 0 3 4 6 

11
10221
0 0 1 1 1 1 1 1 1 0 
5 7 8 2 7 2 5 6 3 2 6 3 4 4 6 4 5 6 3 7 7 6 3 5 6 2 5 7 3 3 3 8 2 4 3 7 6 3 6 4 5 7 8 8 5 7 8 2 4 6

12
11397
0 0 0 1 0 1 1 1 1 1 
5 7 8 8 9 9 5 6 3 3 6 3 3 9 6 9 5 6 7 9 7 6 3 5 6 9 5 7 3 3 3 8 5 9 3 7 9 3 6 8 5 7 8 8 5 7 8 3 5 6

13
9271
1 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 
0 6 14 17 4 14 12 8 5 4 12 5 8 6 12 17 4 0 12 1 15 4 4 14 14 17 15 0 5 6 1 0 17 4 15 8 0 6 6 15 0 6 1 17 4 5 1 14 1 8 

14
8113
1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 
0 13 14 15 7 14 19 14 15 4 6 7 15 6 15 13 4 13 7 1 19 4 4 14 19 13 15 7 19 6 1 0 6 4 0 1 0 6 6 1 0 13 19 19 4 7 0 14 13 7

15
9955
1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 
0 13 14 18 4 14 12 19 18 4 18 18 15 6 12 13 4 0 12 13 19 14 4 14 19 13 15 18 19 6 4 0 6 4 0 15 0 6 6 15 0 13 19 19 4 14 12 15 13 18

16
11805
1 0 1 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 1 
0 6 2 2 4 11 17 11 5 4 11 5 17 6 11 19 4 0 0 11 19 4 4 5 19 17 11 11 5 6 4 0 17 4 2 5 0 6 6 2 0 6 19 17 4 5 17 5 2 2 

17
9297
1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 
0 13 1 17 8 14 12 8 17 6 9 9 8 6 12 13 4 0 0 1 8 14 4 9 14 17 4 0 17 6 1 0 17 4 9 8 0 6 12 1 0 13 1 17 6 4 12 14 13 8 

18
8482
1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 
0 6 1 18 18 14 17 19 18 4 18 18 17 0 15 19 4 0 6 1 15 7 4 14 19 17 15 7 19 6 1 0 17 4 15 17 0 6 6 1 0 6 19 17 4 7 0 14 1 18

19
9804
1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 
0 6 1 15 4 7 19 19 17 4 9 7 17 6 15 19 4 0 0 1 15 7 4 9 19 17 15 7 17 6 1 0 17 4 0 1 0 6 6 15 0 6 19 17 4 7 17 15 1 7

20
11890
1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 
0 13 1 18 4 14 19 14 18 4 18 18 15 0 15 13 4 7 7 1 15 14 4 14 19 13 15 7 18 14 1 0 15 4 15 1 0 7 0 1 0 13 19 19 4 7 1 14 13 7 

21
8826
1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 
0 6 1 17 4 14 12 8 17 4 6 8 8 6 12 8 4 0 12 1 1 14 4 14 14 17 4 0 17 6 1 0 17 4 0 8 0 6 12 1 0 6 1 17 4 14 12 14 1 8 

22
8375
1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 
0 6 1 18 18 14 18 19 19 4 18 18 15 6 15 19 4 0 0 1 15 14 4 3 19 3 15 19 19 6 1 0 15 4 0 15 0 6 6 1 0 6 19 19 4 4 1 14 1 18

23
9956
1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 
0 6 1 17 7 7 17 15 15 4 6 7 15 6 15 17 4 0 0 1 15 7 4 7 17 17 15 7 17 6 1 0 7 4 0 1 0 6 6 15 0 6 1 17 4 7 17 15 1 7

24
11015
1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 
0 6 14 13 4 14 19 8 19 4 6 8 8 6 13 13 4 13 0 13 19 14 4 14 19 13 4 19 19 14 4 0 6 4 0 8 0 6 6 13 0 13 19 19 6 4 0 14 13 8 

25
11630
0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 
21 10 21 7 20 8 13 18 21 13 8 13 18 21 5 22 13 18 7 5 21 8 8 7 5 22 20 8 5 13 4 13 10 10 4 21 8 8 7 8 4 13 18 10 4 22 20 8 5 13 22 13 8 7 13 21 18 8 8 5 22 13 8 7 13 4 13 22 10 4 8 22 18 18 4 10 7 8 5 13 4 13 10 10 4 21 10 8 4 5 4 13 8 10 4 8 13 18 21 5 4 13 22 10 4 22 20 8 8 5 22 20 8 5 13 22 8 8 7 5 10 20 8 5 7 22 20 8 13 5 10 13 8 7 7 22 18 8 8 5 8 13 18 10 4 10 20 8 8 5

26
10575
0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 
21 10 8 8 5 8 13 18 21 13 21 13 18 21 5 8 27 8 7 5 21 27 27 7 5 10 27 8 5 27 4 13 10 10 4 21 27 8 4 5 8 13 10 10 4 10 27 8 5 7 22 13 8 7 13 22 18 8 13 5 22 13 8 7 13 4 13 22 10 4 8 22 18 21 4 22 7 8 7 7 4 13 10 10 4 21 27 27 7 5 4 13 8 10 4 8 13 18 21 5 4 13 22 10 4 22 27 8 8 5 10 27 8 5 13 22 27 8 7 5 27 27 8 5 7 22 18 8 13 5 10 13 8 7 13 21 27 8 8 5 8 13 18 10 4 10 27 8 8 5 

27
12675
0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 
21 18 8 4 5 8 13 18 21 4 8 13 18 21 4 23 13 18 21 5 21 8 8 7 5 22 23 8 5 13 4 13 22 7 4 23 8 21 4 5 4 13 18 18 4 22 13 8 5 13 22 13 8 7 13 21 18 8 13 5 22 13 8 7 13 4 13 22 7 4 8 22 18 21 4 22 7 8 5 7 4 13 18 7 4 23 8 8 4 5 4 13 8 7 4 23 13 18 21 5 4 13 22 7 4 22 8 8 8 5 22 13 8 5 7 22 8 8 7 5 22 8 8 5 13 22 18 8 13 5 22 13 8 7 13 22 18 8 8 5 8 13 18 18 4 22 8 8 5 5 

28
14642
0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 
22 20 8 13 20 8 13 8 7 13 20 13 8 22 4 8 13 8 7 5 10 8 8 7 5 5 20 8 5 13 4 13 10 9 4 22 20 8 5 5 4 13 10 10 4 10 20 8 5 13 22 13 8 7 13 10 20 5 13 5 22 13 8 7 9 4 13 20 9 4 8 22 8 20 9 10 7 8 5 7 4 13 10 10 4 20 13 13 4 5 4 13 8 9 4 8 8 8 9 5 4 13 22 10 4 10 20 8 8 9 10 20 8 7 13 10 8 8 7 5 7 20 9 5 13 22 20 8 13 5 10 13 8 7 7 10 20 8 5 9 8 13 10 10 4 10 20 8 5 9 

29
12630
0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 
21 10 21 16 20 8 13 8 21 9 20 13 24 21 5 21 16 8 21 5 21 16 8 16 5 10 20 8 5 9 4 13 11 9 4 21 16 24 11 11 4 13 10 10 4 7 20 16 5 7 10 13 8 7 13 21 20 5 13 11 10 13 8 7 9 4 13 11 9 4 20 9 24 21 4 10 7 8 7 7 11 13 10 9 4 21 10 24 4 5 4 13 8 9 4 20 16 24 7 5 4 24 11 9 4 24 20 8 8 5 10 20 16 5 7 10 16 8 7 5 7 20 16 5 7 21 20 8 13 11 10 13 16 7 7 21 20 8 7 11 8 13 10 10 4 24 20 8 5 9 

30
12109
0 0 0 0 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 
24 18 7 7 20 8 21 18 21 9 8 13 18 7 16 21 16 8 7 5 21 16 8 16 16 24 20 8 5 7 4 13 22 9 4 22 20 21 16 5 8 13 18 21 4 22 20 9 5 7 22 13 8 7 13 21 16 5 13 8 22 13 8 7 9 4 13 22 9 4 20 9 18 21 4 29 7 8 5 7 4 13 18 9 4 22 20 21 16 16 4 13 8 9 4 20 16 18 7 5 4 24 20 9 4 22 20 8 8 9 22 20 16 5 13 22 16 8 7 5 29 20 16 7 13 24 20 29 8 5 22 13 16 7 13 21 18 29 5 9 8 13 18 21 21 22 20 8 5 9 

31
13628
0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 
21 10 7 25 5 8 13 8 21 13 21 13 24 21 5 21 27 8 7 5 21 27 27 25 5 22 27 9 5 25 4 24 10 9 4 21 27 24 25 5 25 13 10 10 4 7 27 9 5 7 22 13 8 7 13 21 27 5 25 5 22 13 8 7 9 4 13 22 9 4 8 22 24 21 4 10 7 8 7 7 4 13 10 10 4 21 27 24 7 5 4 13 8 9 4 21 13 24 21 5 4 13 22 9 4 22 27 8 25 9 22 27 9 5 7 22 27 8 25 5 27 7 9 5 7 22 27 8 25 25 10 13 8 7 7 21 27 8 25 25 8 13 10 10 4 22 27 8 25 25 

32
16054
0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 
21 10 8 25 20 8 13 18 21 13 20 16 18 21 5 8 16 18 25 5 21 16 8 7 5 10 20 8 5 25 4 13 10 7 4 21 20 21 16 5 4 13 15 21 4 7 20 16 5 7 10 13 8 7 13 21 18 8 25 25 10 13 8 7 13 4 13 10 7 4 20 15 18 21 4 10 7 16 7 7 4 13 10 10 4 21 20 21 7 5 4 13 8 10 4 8 16 18 21 5 4 13 20 10 4 10 20 8 25 5 10 20 16 5 7 10 16 8 25 5 7 20 8 5 7 21 20 5 15 25 10 13 16 7 7 21 18 8 25 25 8 13 18 18 4 10 20 8 15 25 

33
11620
0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 
21 18 21 16 5 8 13 18 21 13 8 13 18 21 5 21 16 8 7 5 21 16 8 16 5 22 16 8 5 13 4 13 22 7 4 21 8 21 16 5 4 13 18 18 4 22 7 8 5 7 22 13 8 7 13 21 18 5 13 5 22 13 8 7 13 4 13 22 7 4 8 22 18 21 4 22 7 8 7 7 4 13 18 7 4 21 13 21 16 5 4 13 8 7 4 21 16 18 21 5 4 13 22 7 4 22 16 8 8 5 22 16 16 5 13 22 8 8 7 5 7 7 8 5 7 22 18 8 13 5 22 13 16 7 7 21 18 8 7 5 8 13 18 18 4 22 16 8 5 5 

34
10928
0 0 0 0 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 
21 18 7 16 5 8 13 18 21 13 21 21 18 21 5 21 13 8 7 5 21 8 8 7 5 22 16 8 5 9 4 13 22 9 4 21 16 21 16 5 4 13 18 9 4 22 7 8 5 7 22 13 8 7 13 21 18 8 13 5 22 13 8 7 9 4 13 22 9 4 8 22 18 21 5 22 7 16 7 7 4 13 18 9 4 21 16 13 4 5 4 13 8 9 4 8 13 18 21 5 4 13 22 9 4 22 16 8 7 5 22 16 16 5 7 22 8 8 7 5 7 7 8 5 7 22 18 8 13 5 22 13 8 7 7 21 18 8 7 5 8 13 18 18 4 22 16 8 5 9 

35
12200
0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 
21 18 21 4 8 8 13 18 21 4 21 13 18 21 5 21 13 18 21 5 21 13 8 7 5 22 18 8 5 5 4 13 22 7 4 21 13 21 4 5 4 13 18 18 4 22 7 8 5 13 22 13 8 7 13 21 18 5 13 5 22 13 8 7 13 4 13 22 7 4 4 22 18 21 4 22 7 8 7 7 4 13 18 7 4 21 13 21 7 5 4 13 8 7 4 8 21 18 21 5 4 13 22 7 4 22 8 8 8 5 22 13 8 5 7 22 8 8 7 5 7 7 8 5 7 22 18 8 13 5 22 13 8 7 7 21 18 8 7 5 8 21 18 18 4 22 8 8 5 5 

36
14878
0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
10 10 7 4 20 8 13 8 7 13 20 13 8 7 5 10 13 8 7 5 10 8 9 7 5 5 20 9 5 11 4 13 11 9 4 20 20 9 11 5 11 13 10 9 4 7 20 9 5 13 10 13 8 7 13 10 20 4 5 11 10 13 8 7 13 4 13 10 9 4 20 13 10 9 4 10 7 8 7 7 4 13 8 9 4 8 10 8 7 11 4 13 8 10 4 20 13 8 7 5 4 13 11 9 4 10 20 8 7 9 10 20 9 5 7 10 8 8 7 5 10 20 8 5 7 8 20 5 8 11 10 13 8 7 7 10 20 9 8 11 4 13 10 9 4 10 20 9 5 11 

37
11120
0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 
21 18 7 7 5 8 13 18 21 13 8 13 18 21 5 8 13 8 7 5 21 8 8 7 5 22 8 8 5 13 4 13 22 7 4 21 8 21 7 5 4 13 18 7 4 7 7 8 5 7 22 13 8 7 13 21 18 8 13 5 22 13 8 7 13 4 13 22 7 4 8 22 18 21 4 22 7 8 7 7 4 13 18 7 4 21 8 8 7 5 4 13 8 7 4 8 13 18 21 5 4 13 22 7 4 22 8 8 8 5 22 13 8 5 7 22 8 8 7 5 7 7 8 5 7 22 18 8 13 5 22 13 8 7 7 21 18 8 7 5 8 13 18 18 4 22 8 8 5 5 

38
11297
0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 
21 16 7 7 16 8 13 8 21 13 21 13 8 21 16 21 16 8 7 16 21 16 8 7 16 22 16 8 8 13 8 13 22 7 13 21 16 21 7 16 8 13 22 21 21 7 7 8 7 7 22 13 8 7 13 21 8 8 13 8 22 13 8 7 13 8 13 22 7 21 8 22 8 21 21 22 7 16 7 7 8 13 8 7 13 21 16 21 16 16 8 13 8 7 13 8 13 8 21 16 13 13 22 7 21 22 16 8 8 13 22 16 16 7 7 22 16 8 7 13 7 7 8 7 7 22 16 8 13 13 22 13 16 7 7 21 16 8 7 13 8 13 22 21 21 22 16 8 7 13 

39
11901
0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 
21 18 7 7 5 8 13 18 21 13 8 13 18 21 5 8 13 8 7 5 21 8 8 7 5 22 8 8 5 13 4 13 22 7 4 21 8 21 7 5 4 13 18 7 4 7 7 8 5 7 22 13 8 7 13 21 18 8 13 5 22 13 8 7 13 4 13 22 7 4 8 22 18 21 4 22 7 8 7 7 4 13 18 7 4 21 8 8 7 5 4 13 8 7 4 8 13 18 21 5 4 13 22 7 4 22 8 8 8 5 22 13 8 5 7 22 8 8 7 5 7 7 8 5 7 22 18 8 13 5 22 13 8 7 7 21 18 8 7 5 8 13 18 18 4 22 8 8 5 5 

40
13717
0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 
21 18 21 7 8 8 21 18 21 13 8 21 18 21 21 21 13 18 7 13 21 13 8 7 13 22 18 8 7 7 8 13 22 7 13 21 18 21 7 8 8 13 18 18 21 22 7 8 7 7 22 13 8 7 13 21 18 8 7 8 22 13 8 7 13 8 13 22 7 21 8 22 18 21 21 22 7 8 7 7 8 13 18 7 21 21 18 21 7 8 8 13 8 7 13 8 21 18 21 13 13 13 22 7 21 22 13 8 7 13 22 13 8 7 7 22 8 8 7 13 22 7 8 7 7 22 18 8 13 13 22 13 8 7 7 21 18 8 7 13 8 13 18 18 21 22 8 8 8 13 

41
8573
0 0 0 1 1 1 1 1 0 1 
6 6 7 3 6 7 4 3 3 3 9 3 7 9 3 7 3 4 4 4 5 6 7 6 6 7 7 7 7 9 4 3 7 3 4 5 3 9 7 7 5 3 9 3 3 6 6 5 7 7 7 3 9 3 3 9 4 7 9 3 5 6 4 4 6 5 5 3 5 3 5 5 9 7 9 4 6 7 3 9 3 5 4 5 5 7 4 6 6 4 

42
6629
0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 
6 10 7 7 6 10 10 6 7 7 2 2 7 6 2 2 7 6 2 2 10 2 4 4 4 11 7 10 6 10 11 6 11 4 6 11 10 2 4 4 11 11 6 10 2 6 4 4 6 4 10 11 7 6 2 2 11 2 6 10 4 11 7 7 6 7 10 6 6 7 11 6 11 11 7 11 4 11 7 10 

43
6171
1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 
6 26 13 23 14 23 26 6 6 13 6 23 0 23 0 23 14 0 6 6 13 6 6 13 6 13 6 13 14 23 14 13 26 23 6 14 23 14 26 26 14 6 0 23 26 14 6 13 6 23 26 23 14 23 0 26 26 13 14 0 26 23 6 26 0 13 6 13 0 23 

44
12374
1 1 1 1 0 1 1 1 0 1 
5 5 0 6 7 2 9 0 7 9 7 1 0 2 0 7 6 1 9 7 3 0 5 5 7 5 2 2 0 6 7 7 3 3 2 5 3 1 0 7 0 2 9 0 7 7 1 1 7 7 2 0 2 9 9 2 0 6 1 1 5 7 6 9 7 1 6 6 7 1 3 0 5 7 3 0 5 6 7 5 1 9 9 7 6 6 7 2 2 2 

45
8883
1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 
3 19 8 3 8 19 17 19 17 0 0 0 19 0 3 8 17 3 3 0 3 17 13 17 13 19 17 19 19 0 3 19 19 0 3 13 19 0 19 8 13 0 19 8 17 8 3 13 17 3 3 0 8 0 13 3 17 17 13 17 13 19 17 19 0 17 13 17 17 3 13 13 8 19 8 19 3 19 13 17 

46
7250
1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 
5 19 19 19 19 5 14 19 5 0 5 14 14 19 21 14 5 12 21 19 12 29 0 14 14 29 0 21 19 12 0 29 5 5 5 12 12 0 29 0 14 19 19 19 29 21 19 0 21 19 12 19 19 21 29 0 19 14 29 5 29 29 19 29 21 5 19 5 29 0 

47
12685
1 1 1 0 0 1 1 1 1 0 
2 1 0 8 6 5 7 8 7 8 6 6 1 6 7 7 8 8 5 7 2 8 6 7 7 7 0 6 7 8 2 6 2 1 7 0 5 7 7 7 0 6 1 7 0 2 7 7 5 7 2 0 1 0 2 7 1 6 8 8 6 7 0 2 7 0 5 7 5 5 0 0 2 7 0 6 6 5 6 7 0 1 2 2 8 6 5 7 6 5 

48
10027
1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 
6 19 19 0 6 0 11 0 11 1 11 19 11 0 1 0 15 0 1 11 19 0 1 0 19 6 1 0 19 6 1 0 15 11 1 11 19 19 0 11 15 11 6 11 15 11 6 11 15 15 19 11 15 15 11 11 15 11 15 6 15 11 15 1 6 11 19 6 0 19 19 11 0 0 19 15 6 19 19 15 

49
7769
1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 
3 22 13 27 22 3 22 3 22 22 1 27 1 27 13 3 27 0 22 13 0 22 3 27 3 22 13 3 27 0 27 13 22 22 3 27 3 3 22 1 27 0 27 13 3 22 1 22 3 1 27 0 22 3 27 13 3 27 0 22 13 3 22 0 22 13 22 22 0 27 

50
9090
0 1 1 0 0 1 1 1 1 1 
1 1 5 9 1 5 8 2 6 6 5 2 6 6 1 2 8 2 8 1 5 7 6 6 5 2 8 5 2 5 2 7 7 2 9 2 8 7 7 5 2 1 7 2 9 2 7 6 7 5 6 7 6 5 5 1 9 5 7 5 5 2 5 9 1 2 8 2 8 6 6 7 6 1 9 2 8 5 7 5 5 7 6 9 7 2 9 5 7 5 5 2 6 6 1 9 8 2 8 6 

51
7832
1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 
11 0 0 11 16 6 6 11 16 7 6 6 11 8 7 11 7 12 16 8 12 7 11 8 11 6 6 11 8 7 12 0 16 12 16 0 7 11 16 7 6 6 11 8 7 0 6 11 8 8 11 0 12 11 8 11 7 11 16 8 16 6 11 0 11 16 16 16 0 16 11 7 12 16 16 0 7 12 16 0 16 6 11 8 7 0 7 11 16 0 12 16 11 0 11 0 7 12 16 0 

52
14609
0 1 0 1 1 1 1 1 1 1 
8 3 3 6 6 4 4 9 1 7 5 7 3 6 3 3 6 9 9 3 5 3 3 6 5 4 7 9 7 7 8 3 3 6 6 6 4 3 6 7 8 3 3 6 6 4 4 7 1 7 8 9 3 1 7 5 5 9 4 4 1 1 3 8 1 3 7 1 7 5 7 3 3 6 5 4 7 7 7 7 8 7 3 3 8 5 5 3 3 4 5 7 9 1 9 5 6 9 4 4 

53
11501
0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 
11 3 11 19 9 13 3 11 13 18 19 3 13 1 11 19 3 11 13 9 19 3 11 3 18 3 18 19 9 19 13 3 19 19 1 13 3 11 19 18 19 3 13 19 11 19 11 9 1 11 11 3 11 19 9 19 3 11 19 9 19 3 11 3 9 19 3 11 3 18 1 18 13 19 9 19 3 11 1 11 1 18 13 19 19 19 18 13 19 9 1 18 1 11 19 13 3 11 19 1 

54
13973
1 1 1 1 1 0 1 0 1 1 
4 2 2 9 2 4 4 6 2 0 4 0 3 3 2 4 6 4 8 0 4 6 2 3 2 1 6 4 8 8 4 6 3 3 6 1 6 4 8 0 4 0 2 9 2 1 4 4 8 0 4 9 2 3 2 4 6 3 9 0 4 9 3 9 2 4 3 1 9 0 4 0 2 3 2 1 6 4 8 8 4 9 3 3 2 0 6 1 9 0 4 0 2 9 2 1 6 4 8 8 

55
11213
0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 
19 19 7 7 9 19 3 2 14 9 19 3 7 14 7 19 3 2 7 9 3 2 2 14 7 2 2 2 14 9 19 3 7 7 9 19 19 3 7 9 3 3 2 14 19 19 19 2 19 2 19 19 3 7 9 19 19 3 3 9 19 3 7 14 9 19 19 2 3 2 19 3 2 7 7 3 2 2 14 2 3 2 2 14 7 3 2 2 14 14 3 2 2 14 19 19 19 3 7 9 

56
25124
1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 0 0 
19 22 1 15 9 3 8 3 24 5 9 4 0 14 9 2 14 16 16 5 16 16 4 19 17 8 5 0 3 16 4 5 14 3 2 16 14 24 24 0 1 0 11 1 3 22 3 5 22 19 17 14 24 4 24 4 5 9 14 15 17 27 22 14 15 24 5 14 24 15 15 9 2 8 22 15 16 11 3 14 5 5 11 23 22 5 15 2 24 15 9 24 0 27 16 17 2 0 22 3 2 9 27 11 27 19 1 23 11 9 8 1 9 1 4 17 1 8 11 3 0 4 2 22 1 15 16 17 8 2 23 8 23 9 16 4 5 23 22 1 2 17 19 11 11 19 11 8 11 9 8 11 1 22 4 24 0 24 22 17 23 8 19 17 11 0 2 5 19 23 17 14 24 4 23 23 2 14 27 4 3 4 19 22 1 15 27 1 27 27 16 8 23 9 8 22 4 1 27 8 

57
30710
0 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 
19 8 1 8 9 3 8 3 6 25 9 4 10 12 9 11 25 19 29 5 12 6 4 19 17 8 18 18 3 12 4 10 18 3 9 27 1 19 5 10 1 12 12 1 3 17 12 5 19 19 17 19 1 6 17 4 5 9 18 1 17 27 3 25 4 4 5 3 9 10 18 3 19 8 5 6 12 11 3 25 5 25 11 12 12 5 4 3 6 6 9 29 27 27 29 17 18 29 11 3 6 9 27 11 27 19 1 11 11 9 25 1 29 1 29 17 18 8 11 18 25 10 10 27 1 5 6 17 8 27 10 12 12 9 29 4 5 9 18 1 6 17 19 11 6 19 11 8 18 18 8 11 1 27 4 25 5 29 12 17 3 8 19 17 11 25 9 5 29 19 17 19 5 4 25 10 6 18 27 4 3 4 1 6 10 11 29 1 8 29 27 8 12 9 8 10 4 1 27 8 

58
43147
1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 
19 22 1 8 9 3 8 3 6 25 9 4 10 12 27 0 25 19 29 5 12 6 4 19 19 8 18 0 3 12 4 10 18 3 9 27 1 29 5 10 1 12 12 1 3 22 12 5 22 19 3 19 5 6 29 4 5 9 18 1 10 27 22 25 0 4 5 27 9 10 18 3 19 8 0 6 12 22 3 25 5 25 9 12 12 5 4 3 6 25 9 29 0 8 29 18 0 0 22 3 6 9 27 4 27 19 1 29 12 9 25 1 9 1 29 27 18 8 25 18 0 10 10 22 1 5 25 1 8 27 10 12 12 27 29 4 0 25 22 1 6 22 19 4 6 19 1 8 18 18 8 18 5 22 4 25 0 29 12 9 3 8 19 22 6 0 9 5 29 22 27 19 5 4 25 10 6 18 27 4 3 4 1 22 10 0 29 1 8 29 22 8 12 9 8 10 4 1 27 8 

59
33837
0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 
19 20 1 4 9 1 10 6 6 25 9 4 10 12 9 2 14 19 23 20 12 14 4 19 17 9 18 18 20 14 4 10 14 14 2 25 14 19 12 10 1 12 12 1 20 17 12 10 19 19 17 14 1 6 17 4 29 9 14 1 17 6 18 25 4 4 18 14 23 6 29 9 19 19 20 6 12 20 2 14 14 25 9 23 20 1 4 2 6 25 9 29 19 19 29 17 20 18 12 28 6 9 19 4 6 19 1 23 12 9 25 17 29 1 29 17 18 12 2 18 25 10 10 2 28 1 29 20 28 2 23 12 12 9 29 28 2 9 14 1 2 17 19 17 6 19 28 28 18 9 12 18 1 23 4 25 18 23 12 17 23 20 28 17 6 25 2 10 29 23 17 14 23 20 23 10 6 14 14 4 25 4 28 9 28 1 29 1 28 20 10 12 23 20 23 10 4 1 2 23 

60
25244
1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 
19 22 6 8 9 11 8 6 6 5 9 4 0 14 9 11 7 19 23 5 17 14 4 19 17 8 7 0 5 14 4 5 7 14 9 24 7 24 24 0 5 5 8 7 22 22 19 5 22 19 17 14 24 4 17 4 5 5 14 9 17 11 22 29 0 24 5 14 9 6 29 9 19 8 5 6 22 11 0 14 5 5 11 23 7 5 4 14 24 5 9 29 0 8 29 17 0 29 11 7 6 9 19 11 6 7 17 23 11 9 7 17 29 19 7 17 19 8 11 6 0 29 29 22 23 11 14 17 8 29 23 8 23 9 4 4 5 23 14 9 4 17 19 11 6 19 11 8 11 9 8 11 5 22 4 24 0 24 22 17 23 8 19 17 11 0 9 5 29 23 17 14 24 4 23 7 24 14 14 4 7 4 19 22 11 11 29 4 8 29 0 8 23 9 8 22 4 14 0 8 

61
30486
0 1 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 
19 20 1 26 9 26 9 12 26 5 9 22 27 12 9 16 14 16 16 20 16 16 20 19 16 9 5 22 20 16 11 5 14 14 9 16 14 16 26 20 1 12 12 1 20 22 12 5 22 19 27 14 26 27 16 14 5 5 14 1 12 27 22 20 19 27 5 14 9 11 20 9 19 19 22 19 12 11 9 14 5 12 11 12 20 5 12 14 14 5 9 22 27 27 16 26 20 19 11 9 22 9 27 11 27 19 1 11 11 9 26 1 9 1 14 11 20 19 11 16 20 26 5 22 1 11 16 20 5 16 20 12 12 9 16 26 5 5 22 1 26 22 19 11 27 19 11 16 11 9 12 11 5 22 26 27 5 19 12 9 26 20 19 22 11 26 9 5 19 22 14 14 26 20 12 22 26 14 27 22 26 20 1 22 26 11 27 1 27 20 16 12 26 20 12 22 26 1 27 22 

62
40912
1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 
19 22 6 10 2 13 10 6 6 10 19 6 0 14 2 2 14 16 16 12 16 16 16 19 16 10 0 0 2 16 6 12 14 14 2 16 14 24 24 10 14 12 12 24 22 22 12 10 22 13 2 14 24 6 24 13 0 10 14 2 12 24 13 14 0 24 19 14 24 10 19 22 2 24 0 6 13 6 2 14 14 12 12 24 12 22 12 14 24 6 19 24 0 24 16 13 2 0 22 2 6 22 19 22 6 19 10 13 13 24 12 16 22 19 14 24 19 19 13 6 0 10 10 13 10 0 16 22 2 16 10 12 12 2 16 13 0 10 14 2 6 22 19 22 6 19 2 16 13 0 12 16 16 22 2 24 0 24 12 0 2 22 19 22 6 0 2 10 19 22 2 14 24 6 12 10 2 14 14 13 19 10 19 22 10 0 6 24 2 16 16 0 12 2 12 10 24 14 0 22 

63
34003
1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 
19 22 6 4 6 3 10 3 6 10 19 4 10 12 3 0 18 19 23 12 12 6 4 19 19 18 18 0 3 12 4 12 18 3 4 0 0 19 12 10 10 12 12 23 3 22 12 10 22 19 3 19 23 4 4 4 0 23 18 3 12 6 22 28 0 4 18 3 23 10 18 3 19 19 0 6 22 22 3 22 10 12 12 23 12 22 4 3 6 10 19 28 0 22 28 23 0 0 22 3 6 23 19 4 6 19 22 23 12 18 12 18 22 19 28 18 18 12 22 18 0 10 10 22 28 0 6 4 28 12 23 12 12 22 4 28 0 23 22 28 6 23 19 4 6 19 28 28 18 18 12 18 3 22 4 28 0 23 12 28 23 22 19 4 6 0 10 10 19 23 3 19 23 4 23 10 6 18 22 4 3 4 28 22 28 0 6 4 28 28 0 0 23 3 23 10 4 18 0 23 

64
29000
0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 
19 22 17 4 19 3 2 3 4 5 19 4 27 12 27 11 7 19 7 5 12 7 4 5 17 4 7 22 3 12 11 12 7 3 4 27 7 19 5 17 11 12 12 7 22 22 12 5 22 19 17 19 5 4 17 4 5 5 22 7 17 11 22 19 4 4 5 7 4 7 19 22 2 17 5 22 12 22 4 22 5 5 5 12 22 22 4 12 4 5 19 7 11 11 7 17 5 12 11 7 4 17 19 11 27 7 17 11 12 17 7 17 22 17 7 17 19 12 11 3 7 4 2 22 12 11 27 17 5 2 22 12 12 27 17 4 5 5 22 7 4 17 19 11 11 19 11 11 11 19 12 11 22 22 4 11 5 19 12 17 19 22 19 17 11 11 2 5 19 19 17 19 12 5 12 17 11 5 22 4 7 4 19 22 11 11 2 4 27 27 22 12 12 2 12 22 4 3 2 4 

65
30425
0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 
19 4 14 15 9 25 2 2 24 25 9 4 4 14 9 2 14 19 5 5 24 14 4 19 14 4 5 25 5 14 4 5 14 2 2 24 14 24 5 5 14 25 11 24 2 5 15 5 19 19 2 14 24 4 24 4 5 5 14 15 24 11 4 25 15 24 5 14 24 15 15 9 2 15 5 15 9 11 15 14 5 25 11 24 24 5 4 2 24 15 9 24 11 24 25 4 2 25 11 9 4 9 19 11 5 19 11 11 11 9 25 11 9 19 4 11 19 19 11 2 15 4 2 2 24 15 14 4 5 2 4 25 14 9 24 4 5 9 14 9 2 9 19 11 11 19 11 15 11 9 25 11 5 14 4 24 5 24 24 9 2 4 19 15 11 25 2 5 19 19 2 14 24 4 11 4 2 14 14 4 19 4 19 15 2 15 2 4 9 2 14 25 5 9 11 5 4 14 2 4 

66
38756
1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 
19 17 21 28 9 0 2 2 24 5 9 28 0 14 9 2 14 21 5 5 17 14 14 19 17 9 21 0 5 14 28 5 14 2 2 24 14 24 24 0 14 5 5 24 2 17 19 5 0 19 17 14 24 5 17 28 2 9 14 9 17 24 0 14 0 24 5 14 24 5 19 9 2 24 0 9 17 17 0 14 5 5 5 24 24 5 19 2 24 5 19 28 0 21 28 17 0 0 14 9 2 9 19 17 5 19 17 28 21 9 5 17 9 21 28 17 19 19 21 2 0 28 2 2 28 5 21 21 5 2 28 21 14 9 17 28 0 9 14 9 2 17 19 17 5 19 28 28 0 9 21 0 5 14 2 24 0 24 24 17 21 21 19 17 21 0 2 5 19 19 2 14 24 5 28 17 2 14 14 2 19 28 28 17 28 0 21 17 28 2 0 0 28 9 28 5 24 14 0 2 

67
31497
0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 
19 8 6 15 6 13 8 6 24 5 18 4 8 14 18 24 14 19 23 5 13 14 4 19 13 8 18 18 5 14 4 5 14 14 4 24 14 24 24 5 14 5 8 23 8 24 15 5 19 19 14 14 24 6 24 4 5 5 14 15 24 24 13 19 15 24 5 14 6 6 18 15 19 8 14 15 13 4 15 14 5 5 5 23 23 5 15 14 24 15 19 28 19 24 28 23 18 8 13 28 6 23 19 15 6 19 23 23 13 24 8 18 15 19 4 24 18 19 13 18 15 28 28 13 28 15 14 4 5 6 23 8 23 5 4 4 5 23 14 28 6 23 19 4 6 19 28 8 18 18 8 18 5 23 4 24 5 24 24 28 23 8 19 15 6 13 8 5 19 23 14 14 24 4 23 23 24 14 14 4 19 4 28 6 28 15 8 4 28 18 14 8 23 5 8 18 4 18 4 8 

68
25423
0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 1 
19 20 6 8 6 3 8 3 6 5 19 4 8 14 27 16 14 16 16 20 16 16 4 19 17 8 5 22 3 16 4 5 14 3 4 16 14 16 5 17 14 5 26 20 3 22 3 5 22 19 17 14 5 4 17 4 5 5 14 3 17 27 22 29 4 4 5 14 14 6 19 3 19 8 22 6 22 11 3 14 5 5 11 3 20 5 4 14 6 5 19 29 27 8 29 17 20 29 11 3 6 17 19 11 27 19 17 11 11 17 26 17 29 19 29 17 20 8 11 3 20 26 29 22 29 11 16 20 8 16 4 8 14 27 16 26 5 5 14 3 6 17 19 11 6 19 11 8 11 26 8 11 5 22 4 27 5 29 22 17 26 20 19 17 26 26 8 5 29 22 17 14 26 20 11 22 6 14 27 4 26 4 19 22 26 11 29 4 8 29 16 8 26 20 8 22 4 14 27 8 

69
31741
1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 1 0 
19 22 1 8 9 1 8 19 9 15 9 22 0 16 9 11 1 16 16 19 16 16 15 19 16 8 0 22 8 16 11 10 11 9 9 16 1 16 16 10 1 0 8 1 22 22 15 10 22 19 16 19 1 22 16 28 0 9 19 15 10 11 22 28 15 8 19 1 9 10 15 9 19 8 22 15 22 11 15 16 1 0 11 1 22 22 15 19 9 15 9 28 0 8 28 28 0 0 11 9 22 9 19 11 11 19 1 11 11 9 8 1 9 1 28 11 1 8 11 9 15 10 10 22 28 15 16 1 8 16 10 8 28 9 16 28 0 9 22 1 22 22 1 11 11 19 11 8 11 9 8 11 1 22 16 16 0 8 22 0 19 8 19 15 11 0 9 15 19 22 16 19 1 11 11 10 11 10 22 15 19 8 28 22 28 15 8 1 28 28 0 8 1 9 8 10 11 1 0 8 

70
37340
0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 
7 22 27 8 11 26 8 7 26 5 15 22 8 16 27 11 7 16 16 5 16 16 15 5 16 8 7 22 5 16 11 5 7 22 27 16 7 16 26 5 5 5 26 7 22 22 15 5 22 22 27 11 5 27 16 7 5 5 22 15 27 27 22 29 15 27 5 7 27 15 15 22 11 8 22 15 16 11 15 16 5 5 11 7 7 5 15 7 26 15 15 29 27 8 29 26 5 8 11 7 29 22 27 11 27 7 11 11 11 11 7 16 29 29 7 11 16 8 11 7 15 26 29 22 29 15 16 22 8 16 22 8 26 27 16 26 5 5 22 7 29 22 27 11 11 7 11 8 11 26 8 11 5 22 26 27 7 29 22 7 26 8 27 15 26 26 8 5 29 22 27 8 26 5 11 7 26 5 27 29 26 8 8 22 26 11 29 15 8 29 16 8 26 5 8 22 26 5 27 8 

71
33110
0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 
19 4 17 4 9 27 10 12 9 5 9 4 10 12 9 27 7 19 23 5 12 7 4 19 17 9 7 17 5 12 4 5 7 9 9 27 7 19 5 10 5 12 12 7 7 5 12 5 19 19 17 19 5 27 17 4 29 5 19 9 12 27 7 29 4 27 5 7 9 10 19 9 19 17 5 9 12 7 9 29 5 12 5 23 12 5 4 7 23 10 9 29 27 27 29 17 19 29 12 7 29 9 19 17 27 7 17 23 7 9 7 17 9 19 7 17 10 19 12 7 7 10 10 27 10 5 29 4 5 27 23 12 12 9 29 4 5 23 19 9 29 17 27 17 27 19 9 10 10 9 12 27 5 27 4 27 5 23 12 17 23 23 19 17 5 19 9 5 29 23 27 19 23 5 23 23 4 10 27 4 7 4 19 17 10 5 29 4 27 29 27 12 12 9 23 10 4 10 27 23 


猜你喜欢

转载自blog.csdn.net/A_bigUncle/article/details/85220541