(暴力+深搜)POJ - 2718 Smallest Difference

原题链接:

http://poj.org/problem?id=2718


题意:

给你几个数字,可以分成两个子集,然后分别按一定顺序排列组成一个数,求出这两只值差的绝对值的最小值。


分析:

反正也是刷着玩,果断先交一波全排列枚举的代码,果断TLE,然后开始想正解。

稍微想想,既然要差最小,肯定是两个数各一半。所以只要深搜出所有n/2(n为给定数字的个数)的组合,另外个n-n/2个数就有了。

但是枚举出来后的操作又想了很久,想过很多算法,都不怎么满意,最终用二分解决。

先把n/2和n-n/2全排列,算了出所有可能组成的整数,然后进行二分,分别和最近的作差比较,需要注意特殊处理。

坑点:忘记了单个0需要特殊考虑,导致WA了好几发,马蛋。

最坏时间复杂度(n==10)C(5,10)×(5!×5)×2==302400。跑了32ms。

算是很快了,不过肯定有比我更快的,膜拜各路大神。


代码:

 

  1 #include <iostream>
  2 #include <sstream>
  3 #include <cstdio>
  4 #include <cstring>
  5 #include <vector>
  6 #include <set>
  7 #include <map>
  8 #include <algorithm>
  9 #include <string>
 10 #include <queue>
 11 #include <cmath>
 12 #include <stack>
 13 #include <cctype>
 14 #include <list>
 15 
 16 #define ll long long
 17 #define ull unsigned long long
 18 #define VNAME(name) (#name)
 19 #define debug(a) cout<<VNAME(a)<<" = "<<(a)<<endl;
 20 
 21 
 22 
 23 using namespace std;
 24 
 25 const int maxn = 110;
 26 const int inf = 1 << 30;
 27 
 28 string str;
 29 int num[maxn];
 30 int a[maxn],b[maxn];//保存在深搜中组合出的数列
 31 bool vis[maxn];//回溯标记
 32 int n;
 33 int ans;
 34 
 35 //全排列算出每个组成的整数
 36 int make_permutation(int x,int *org,int *ne,int *num){
 37     for(int i=0;i<x;i++){
 38         ne[i]=org[i];
 39     }
 40     sort(ne,ne+x);
 41     int nn=0;
 42     do{
 43         if(ne[0]==0)continue;//0前导忽略
 44         int p=0;
 45         for(int i=0;i<x;i++){
 46             p=p*10+ne[i];
 47         }
 48         num[nn++]=p;
 49     }while(next_permutation(ne,ne+x));
 50     return nn;
 51 }
 52 
 53 void dfs(int x,int pre){
 54     if(x==n/2){
 55         int y=n-n/2;//另一半
 56         for(int i=0,j=0;j<y;i++){
 57             if(!vis[i]){
 58                 b[j++]=num[i];
 59             }
 60         }
 61         int ta[11],tb[11];//暂存的a和b
 62         int ra[130],rb[130];//保存组成的整数
 63         int ran=make_permutation(x,a,ta,ra);
 64         int rbn=make_permutation(y,b,tb,rb);
 65         for(int i=0;i<ran;i++){
 66             int p=lower_bound(rb,rb+rbn,ra[i])-rb;
 67             if(rb[p]==ra[i]){//特殊处理
 68                 ans=min(ans,0);
 69             }
 70             else if(p==0){//特殊处理
 71                 ans=min(ans,abs(rb[p]-ra[i]));
 72             }
 73             else if(p==rbn){//特殊处理
 74                 ans=min(ans,abs(rb[p-1]-ra[i]));
 75             }
 76             else{
 77                 ans=min(ans,min(abs(rb[p-1]-ra[i]),abs(rb[p]-ra[i])));
 78             }
 79         }
 80         return ;
 81     }
 82     for(int i=pre;i<n;i++){
 83         if(!vis[i]){
 84             vis[i]=1;
 85             a[x]=num[i];
 86             dfs(x+1,i+1);
 87             vis[i]=0;//回溯
 88         }
 89     }
 90 }
 91 
 92 
 93 int main() {
 94     iostream::sync_with_stdio(false);
 95 
 96 #ifndef ONLINE_JUDGE
 97     freopen("data.in","r",stdin);
 98     //freopen("data.out","w",stdout);
 99 #endif
100 
101     int t;
102     cin>>t;
103     cin.get();
104     while(t--) {
105         getline(cin,str);
106         stringstream ss(str);
107         n=0,ans=inf;
108         memset(vis,0,sizeof(vis));
109         while(ss>>num[n]){
110             n++;
111         }
112                 //因为小于10的数,单个0不算前导,特殊考虑
113                 //并且只有在2个数的时候才会出现这种情况,很容易发现
114         if(n==2){
115             cout<<abs(num[0]-num[1])<<endl;
116             continue;
117         }
118         dfs(0,0);
119         cout<<ans<<endl;
120     }
121     return 0;
122 }    

 

数据:

 

//input
1013
9 8
9 7
8 7
9 8 7
9 6
8 6
9 8 6
7 6
9 7 6
8 7 6
9 8 7 6
9 5
8 5
9 8 5
7 5
9 7 5
8 7 5
9 8 7 5
6 5
9 6 5
8 6 5
9 8 6 5
7 6 5
9 7 6 5
8 7 6 5
9 8 7 6 5
9 4
8 4
9 8 4
7 4
9 7 4
8 7 4
9 8 7 4
6 4
9 6 4
8 6 4
9 8 6 4
7 6 4
9 7 6 4
8 7 6 4
9 8 7 6 4
5 4
9 5 4
8 5 4
9 8 5 4
7 5 4
9 7 5 4
8 7 5 4
9 8 7 5 4
6 5 4
9 6 5 4
8 6 5 4
9 8 6 5 4
7 6 5 4
9 7 6 5 4
8 7 6 5 4
9 8 7 6 5 4
9 3
8 3
9 8 3
7 3
9 7 3
8 7 3
9 8 7 3
6 3
9 6 3
8 6 3
9 8 6 3
7 6 3
9 7 6 3
8 7 6 3
9 8 7 6 3
5 3
9 5 3
8 5 3
9 8 5 3
7 5 3
9 7 5 3
8 7 5 3
9 8 7 5 3
6 5 3
9 6 5 3
8 6 5 3
9 8 6 5 3
7 6 5 3
9 7 6 5 3
8 7 6 5 3
9 8 7 6 5 3
4 3
9 4 3
8 4 3
9 8 4 3
7 4 3
9 7 4 3
8 7 4 3
9 8 7 4 3
6 4 3
9 6 4 3
8 6 4 3
9 8 6 4 3
7 6 4 3
9 7 6 4 3
8 7 6 4 3
9 8 7 6 4 3
5 4 3
9 5 4 3
8 5 4 3
9 8 5 4 3
7 5 4 3
9 7 5 4 3
8 7 5 4 3
9 8 7 5 4 3
6 5 4 3
9 6 5 4 3
8 6 5 4 3
9 8 6 5 4 3
7 6 5 4 3
9 7 6 5 4 3
8 7 6 5 4 3
9 8 7 6 5 4 3
9 2
8 2
9 8 2
7 2
9 7 2
8 7 2
9 8 7 2
6 2
9 6 2
8 6 2
9 8 6 2
7 6 2
9 7 6 2
8 7 6 2
9 8 7 6 2
5 2
9 5 2
8 5 2
9 8 5 2
7 5 2
9 7 5 2
8 7 5 2
9 8 7 5 2
6 5 2
9 6 5 2
8 6 5 2
9 8 6 5 2
7 6 5 2
9 7 6 5 2
8 7 6 5 2
9 8 7 6 5 2
4 2
9 4 2
8 4 2
9 8 4 2
7 4 2
9 7 4 2
8 7 4 2
9 8 7 4 2
6 4 2
9 6 4 2
8 6 4 2
9 8 6 4 2
7 6 4 2
9 7 6 4 2
8 7 6 4 2
9 8 7 6 4 2
5 4 2
9 5 4 2
8 5 4 2
9 8 5 4 2
7 5 4 2
9 7 5 4 2
8 7 5 4 2
9 8 7 5 4 2
6 5 4 2
9 6 5 4 2
8 6 5 4 2
9 8 6 5 4 2
7 6 5 4 2
9 7 6 5 4 2
8 7 6 5 4 2
9 8 7 6 5 4 2
3 2
9 3 2
8 3 2
9 8 3 2
7 3 2
9 7 3 2
8 7 3 2
9 8 7 3 2
6 3 2
9 6 3 2
8 6 3 2
9 8 6 3 2
7 6 3 2
9 7 6 3 2
8 7 6 3 2
9 8 7 6 3 2
5 3 2
9 5 3 2
8 5 3 2
9 8 5 3 2
7 5 3 2
9 7 5 3 2
8 7 5 3 2
9 8 7 5 3 2
6 5 3 2
9 6 5 3 2
8 6 5 3 2
9 8 6 5 3 2
7 6 5 3 2
9 7 6 5 3 2
8 7 6 5 3 2
9 8 7 6 5 3 2
4 3 2
9 4 3 2
8 4 3 2
9 8 4 3 2
7 4 3 2
9 7 4 3 2
8 7 4 3 2
9 8 7 4 3 2
6 4 3 2
9 6 4 3 2
8 6 4 3 2
9 8 6 4 3 2
7 6 4 3 2
9 7 6 4 3 2
8 7 6 4 3 2
9 8 7 6 4 3 2
5 4 3 2
9 5 4 3 2
8 5 4 3 2
9 8 5 4 3 2
7 5 4 3 2
9 7 5 4 3 2
8 7 5 4 3 2
9 8 7 5 4 3 2
6 5 4 3 2
9 6 5 4 3 2
8 6 5 4 3 2
9 8 6 5 4 3 2
7 6 5 4 3 2
9 7 6 5 4 3 2
8 7 6 5 4 3 2
9 8 7 6 5 4 3 2
9 1
8 1
9 8 1
7 1
9 7 1
8 7 1
9 8 7 1
6 1
9 6 1
8 6 1
9 8 6 1
7 6 1
9 7 6 1
8 7 6 1
9 8 7 6 1
5 1
9 5 1
8 5 1
9 8 5 1
7 5 1
9 7 5 1
8 7 5 1
9 8 7 5 1
6 5 1
9 6 5 1
8 6 5 1
9 8 6 5 1
7 6 5 1
9 7 6 5 1
8 7 6 5 1
9 8 7 6 5 1
4 1
9 4 1
8 4 1
9 8 4 1
7 4 1
9 7 4 1
8 7 4 1
9 8 7 4 1
6 4 1
9 6 4 1
8 6 4 1
9 8 6 4 1
7 6 4 1
9 7 6 4 1
8 7 6 4 1
9 8 7 6 4 1
5 4 1
9 5 4 1
8 5 4 1
9 8 5 4 1
7 5 4 1
9 7 5 4 1
8 7 5 4 1
9 8 7 5 4 1
6 5 4 1
9 6 5 4 1
8 6 5 4 1
9 8 6 5 4 1
7 6 5 4 1
9 7 6 5 4 1
8 7 6 5 4 1
9 8 7 6 5 4 1
3 1
9 3 1
8 3 1
9 8 3 1
7 3 1
9 7 3 1
8 7 3 1
9 8 7 3 1
6 3 1
9 6 3 1
8 6 3 1
9 8 6 3 1
7 6 3 1
9 7 6 3 1
8 7 6 3 1
9 8 7 6 3 1
5 3 1
9 5 3 1
8 5 3 1
9 8 5 3 1
7 5 3 1
9 7 5 3 1
8 7 5 3 1
9 8 7 5 3 1
6 5 3 1
9 6 5 3 1
8 6 5 3 1
9 8 6 5 3 1
7 6 5 3 1
9 7 6 5 3 1
8 7 6 5 3 1
9 8 7 6 5 3 1
4 3 1
9 4 3 1
8 4 3 1
9 8 4 3 1
7 4 3 1
9 7 4 3 1
8 7 4 3 1
9 8 7 4 3 1
6 4 3 1
9 6 4 3 1
8 6 4 3 1
9 8 6 4 3 1
7 6 4 3 1
9 7 6 4 3 1
8 7 6 4 3 1
9 8 7 6 4 3 1
5 4 3 1
9 5 4 3 1
8 5 4 3 1
9 8 5 4 3 1
7 5 4 3 1
9 7 5 4 3 1
8 7 5 4 3 1
9 8 7 5 4 3 1
6 5 4 3 1
9 6 5 4 3 1
8 6 5 4 3 1
9 8 6 5 4 3 1
7 6 5 4 3 1
9 7 6 5 4 3 1
8 7 6 5 4 3 1
9 8 7 6 5 4 3 1
2 1
9 2 1
8 2 1
9 8 2 1
7 2 1
9 7 2 1
8 7 2 1
9 8 7 2 1
6 2 1
9 6 2 1
8 6 2 1
9 8 6 2 1
7 6 2 1
9 7 6 2 1
8 7 6 2 1
9 8 7 6 2 1
5 2 1
9 5 2 1
8 5 2 1
9 8 5 2 1
7 5 2 1
9 7 5 2 1
8 7 5 2 1
9 8 7 5 2 1
6 5 2 1
9 6 5 2 1
8 6 5 2 1
9 8 6 5 2 1
7 6 5 2 1
9 7 6 5 2 1
8 7 6 5 2 1
9 8 7 6 5 2 1
4 2 1
9 4 2 1
8 4 2 1
9 8 4 2 1
7 4 2 1
9 7 4 2 1
8 7 4 2 1
9 8 7 4 2 1
6 4 2 1
9 6 4 2 1
8 6 4 2 1
9 8 6 4 2 1
7 6 4 2 1
9 7 6 4 2 1
8 7 6 4 2 1
9 8 7 6 4 2 1
5 4 2 1
9 5 4 2 1
8 5 4 2 1
9 8 5 4 2 1
7 5 4 2 1
9 7 5 4 2 1
8 7 5 4 2 1
9 8 7 5 4 2 1
6 5 4 2 1
9 6 5 4 2 1
8 6 5 4 2 1
9 8 6 5 4 2 1
7 6 5 4 2 1
9 7 6 5 4 2 1
8 7 6 5 4 2 1
9 8 7 6 5 4 2 1
3 2 1
9 3 2 1
8 3 2 1
9 8 3 2 1
7 3 2 1
9 7 3 2 1
8 7 3 2 1
9 8 7 3 2 1
6 3 2 1
9 6 3 2 1
8 6 3 2 1
9 8 6 3 2 1
7 6 3 2 1
9 7 6 3 2 1
8 7 6 3 2 1
9 8 7 6 3 2 1
5 3 2 1
9 5 3 2 1
8 5 3 2 1
9 8 5 3 2 1
7 5 3 2 1
9 7 5 3 2 1
8 7 5 3 2 1
9 8 7 5 3 2 1
6 5 3 2 1
9 6 5 3 2 1
8 6 5 3 2 1
9 8 6 5 3 2 1
7 6 5 3 2 1
9 7 6 5 3 2 1
8 7 6 5 3 2 1
9 8 7 6 5 3 2 1
4 3 2 1
9 4 3 2 1
8 4 3 2 1
9 8 4 3 2 1
7 4 3 2 1
9 7 4 3 2 1
8 7 4 3 2 1
9 8 7 4 3 2 1
6 4 3 2 1
9 6 4 3 2 1
8 6 4 3 2 1
9 8 6 4 3 2 1
7 6 4 3 2 1
9 7 6 4 3 2 1
8 7 6 4 3 2 1
9 8 7 6 4 3 2 1
5 4 3 2 1
9 5 4 3 2 1
8 5 4 3 2 1
9 8 5 4 3 2 1
7 5 4 3 2 1
9 7 5 4 3 2 1
8 7 5 4 3 2 1
9 8 7 5 4 3 2 1
6 5 4 3 2 1
9 6 5 4 3 2 1
8 6 5 4 3 2 1
9 8 6 5 4 3 2 1
7 6 5 4 3 2 1
9 7 6 5 4 3 2 1
8 7 6 5 4 3 2 1
9 8 7 6 5 4 3 2 1
9 0
8 0
9 8 0
7 0
9 7 0
8 7 0
9 8 7 0
6 0
9 6 0
8 6 0
9 8 6 0
7 6 0
9 7 6 0
8 7 6 0
9 8 7 6 0
5 0
9 5 0
8 5 0
9 8 5 0
7 5 0
9 7 5 0
8 7 5 0
9 8 7 5 0
6 5 0
9 6 5 0
8 6 5 0
9 8 6 5 0
7 6 5 0
9 7 6 5 0
8 7 6 5 0
9 8 7 6 5 0
4 0
9 4 0
8 4 0
9 8 4 0
7 4 0
9 7 4 0
8 7 4 0
9 8 7 4 0
6 4 0
9 6 4 0
8 6 4 0
9 8 6 4 0
7 6 4 0
9 7 6 4 0
8 7 6 4 0
9 8 7 6 4 0
5 4 0
9 5 4 0
8 5 4 0
9 8 5 4 0
7 5 4 0
9 7 5 4 0
8 7 5 4 0
9 8 7 5 4 0
6 5 4 0
9 6 5 4 0
8 6 5 4 0
9 8 6 5 4 0
7 6 5 4 0
9 7 6 5 4 0
8 7 6 5 4 0
9 8 7 6 5 4 0
3 0
9 3 0
8 3 0
9 8 3 0
7 3 0
9 7 3 0
8 7 3 0
9 8 7 3 0
6 3 0
9 6 3 0
8 6 3 0
9 8 6 3 0
7 6 3 0
9 7 6 3 0
8 7 6 3 0
9 8 7 6 3 0
5 3 0
9 5 3 0
8 5 3 0
9 8 5 3 0
7 5 3 0
9 7 5 3 0
8 7 5 3 0
9 8 7 5 3 0
6 5 3 0
9 6 5 3 0
8 6 5 3 0
9 8 6 5 3 0
7 6 5 3 0
9 7 6 5 3 0
8 7 6 5 3 0
9 8 7 6 5 3 0
4 3 0
9 4 3 0
8 4 3 0
9 8 4 3 0
7 4 3 0
9 7 4 3 0
8 7 4 3 0
9 8 7 4 3 0
6 4 3 0
9 6 4 3 0
8 6 4 3 0
9 8 6 4 3 0
7 6 4 3 0
9 7 6 4 3 0
8 7 6 4 3 0
9 8 7 6 4 3 0
5 4 3 0
9 5 4 3 0
8 5 4 3 0
9 8 5 4 3 0
7 5 4 3 0
9 7 5 4 3 0
8 7 5 4 3 0
9 8 7 5 4 3 0
6 5 4 3 0
9 6 5 4 3 0
8 6 5 4 3 0
9 8 6 5 4 3 0
7 6 5 4 3 0
9 7 6 5 4 3 0
8 7 6 5 4 3 0
9 8 7 6 5 4 3 0
2 0
9 2 0
8 2 0
9 8 2 0
7 2 0
9 7 2 0
8 7 2 0
9 8 7 2 0
6 2 0
9 6 2 0
8 6 2 0
9 8 6 2 0
7 6 2 0
9 7 6 2 0
8 7 6 2 0
9 8 7 6 2 0
5 2 0
9 5 2 0
8 5 2 0
9 8 5 2 0
7 5 2 0
9 7 5 2 0
8 7 5 2 0
9 8 7 5 2 0
6 5 2 0
9 6 5 2 0
8 6 5 2 0
9 8 6 5 2 0
7 6 5 2 0
9 7 6 5 2 0
8 7 6 5 2 0
9 8 7 6 5 2 0
4 2 0
9 4 2 0
8 4 2 0
9 8 4 2 0
7 4 2 0
9 7 4 2 0
8 7 4 2 0
9 8 7 4 2 0
6 4 2 0
9 6 4 2 0
8 6 4 2 0
9 8 6 4 2 0
7 6 4 2 0
9 7 6 4 2 0
8 7 6 4 2 0
9 8 7 6 4 2 0
5 4 2 0
9 5 4 2 0
8 5 4 2 0
9 8 5 4 2 0
7 5 4 2 0
9 7 5 4 2 0
8 7 5 4 2 0
9 8 7 5 4 2 0
6 5 4 2 0
9 6 5 4 2 0
8 6 5 4 2 0
9 8 6 5 4 2 0
7 6 5 4 2 0
9 7 6 5 4 2 0
8 7 6 5 4 2 0
9 8 7 6 5 4 2 0
3 2 0
9 3 2 0
8 3 2 0
9 8 3 2 0
7 3 2 0
9 7 3 2 0
8 7 3 2 0
9 8 7 3 2 0
6 3 2 0
9 6 3 2 0
8 6 3 2 0
9 8 6 3 2 0
7 6 3 2 0
9 7 6 3 2 0
8 7 6 3 2 0
9 8 7 6 3 2 0
5 3 2 0
9 5 3 2 0
8 5 3 2 0
9 8 5 3 2 0
7 5 3 2 0
9 7 5 3 2 0
8 7 5 3 2 0
9 8 7 5 3 2 0
6 5 3 2 0
9 6 5 3 2 0
8 6 5 3 2 0
9 8 6 5 3 2 0
7 6 5 3 2 0
9 7 6 5 3 2 0
8 7 6 5 3 2 0
9 8 7 6 5 3 2 0
4 3 2 0
9 4 3 2 0
8 4 3 2 0
9 8 4 3 2 0
7 4 3 2 0
9 7 4 3 2 0
8 7 4 3 2 0
9 8 7 4 3 2 0
6 4 3 2 0
9 6 4 3 2 0
8 6 4 3 2 0
9 8 6 4 3 2 0
7 6 4 3 2 0
9 7 6 4 3 2 0
8 7 6 4 3 2 0
9 8 7 6 4 3 2 0
5 4 3 2 0
9 5 4 3 2 0
8 5 4 3 2 0
9 8 5 4 3 2 0
7 5 4 3 2 0
9 7 5 4 3 2 0
8 7 5 4 3 2 0
9 8 7 5 4 3 2 0
6 5 4 3 2 0
9 6 5 4 3 2 0
8 6 5 4 3 2 0
9 8 6 5 4 3 2 0
7 6 5 4 3 2 0
9 7 6 5 4 3 2 0
8 7 6 5 4 3 2 0
9 8 7 6 5 4 3 2 0
1 0
9 1 0
8 1 0
9 8 1 0
7 1 0
9 7 1 0
8 7 1 0
9 8 7 1 0
6 1 0
9 6 1 0
8 6 1 0
9 8 6 1 0
7 6 1 0
9 7 6 1 0
8 7 6 1 0
9 8 7 6 1 0
5 1 0
9 5 1 0
8 5 1 0
9 8 5 1 0
7 5 1 0
9 7 5 1 0
8 7 5 1 0
9 8 7 5 1 0
6 5 1 0
9 6 5 1 0
8 6 5 1 0
9 8 6 5 1 0
7 6 5 1 0
9 7 6 5 1 0
8 7 6 5 1 0
9 8 7 6 5 1 0
4 1 0
9 4 1 0
8 4 1 0
9 8 4 1 0
7 4 1 0
9 7 4 1 0
8 7 4 1 0
9 8 7 4 1 0
6 4 1 0
9 6 4 1 0
8 6 4 1 0
9 8 6 4 1 0
7 6 4 1 0
9 7 6 4 1 0
8 7 6 4 1 0
9 8 7 6 4 1 0
5 4 1 0
9 5 4 1 0
8 5 4 1 0
9 8 5 4 1 0
7 5 4 1 0
9 7 5 4 1 0
8 7 5 4 1 0
9 8 7 5 4 1 0
6 5 4 1 0
9 6 5 4 1 0
8 6 5 4 1 0
9 8 6 5 4 1 0
7 6 5 4 1 0
9 7 6 5 4 1 0
8 7 6 5 4 1 0
9 8 7 6 5 4 1 0
3 1 0
9 3 1 0
8 3 1 0
9 8 3 1 0
7 3 1 0
9 7 3 1 0
8 7 3 1 0
9 8 7 3 1 0
6 3 1 0
9 6 3 1 0
8 6 3 1 0
9 8 6 3 1 0
7 6 3 1 0
9 7 6 3 1 0
8 7 6 3 1 0
9 8 7 6 3 1 0
5 3 1 0
9 5 3 1 0
8 5 3 1 0
9 8 5 3 1 0
7 5 3 1 0
9 7 5 3 1 0
8 7 5 3 1 0
9 8 7 5 3 1 0
6 5 3 1 0
9 6 5 3 1 0
8 6 5 3 1 0
9 8 6 5 3 1 0
7 6 5 3 1 0
9 7 6 5 3 1 0
8 7 6 5 3 1 0
9 8 7 6 5 3 1 0
4 3 1 0
9 4 3 1 0
8 4 3 1 0
9 8 4 3 1 0
7 4 3 1 0
9 7 4 3 1 0
8 7 4 3 1 0
9 8 7 4 3 1 0
6 4 3 1 0
9 6 4 3 1 0
8 6 4 3 1 0
9 8 6 4 3 1 0
7 6 4 3 1 0
9 7 6 4 3 1 0
8 7 6 4 3 1 0
9 8 7 6 4 3 1 0
5 4 3 1 0
9 5 4 3 1 0
8 5 4 3 1 0
9 8 5 4 3 1 0
7 5 4 3 1 0
9 7 5 4 3 1 0
8 7 5 4 3 1 0
9 8 7 5 4 3 1 0
6 5 4 3 1 0
9 6 5 4 3 1 0
8 6 5 4 3 1 0
9 8 6 5 4 3 1 0
7 6 5 4 3 1 0
9 7 6 5 4 3 1 0
8 7 6 5 4 3 1 0
9 8 7 6 5 4 3 1 0
2 1 0
9 2 1 0
8 2 1 0
9 8 2 1 0
7 2 1 0
9 7 2 1 0
8 7 2 1 0
9 8 7 2 1 0
6 2 1 0
9 6 2 1 0
8 6 2 1 0
9 8 6 2 1 0
7 6 2 1 0
9 7 6 2 1 0
8 7 6 2 1 0
9 8 7 6 2 1 0
5 2 1 0
9 5 2 1 0
8 5 2 1 0
9 8 5 2 1 0
7 5 2 1 0
9 7 5 2 1 0
8 7 5 2 1 0
9 8 7 5 2 1 0
6 5 2 1 0
9 6 5 2 1 0
8 6 5 2 1 0
9 8 6 5 2 1 0
7 6 5 2 1 0
9 7 6 5 2 1 0
8 7 6 5 2 1 0
9 8 7 6 5 2 1 0
4 2 1 0
9 4 2 1 0
8 4 2 1 0
9 8 4 2 1 0
7 4 2 1 0
9 7 4 2 1 0
8 7 4 2 1 0
9 8 7 4 2 1 0
6 4 2 1 0
9 6 4 2 1 0
8 6 4 2 1 0
9 8 6 4 2 1 0
7 6 4 2 1 0
9 7 6 4 2 1 0
8 7 6 4 2 1 0
9 8 7 6 4 2 1 0
5 4 2 1 0
9 5 4 2 1 0
8 5 4 2 1 0
9 8 5 4 2 1 0
7 5 4 2 1 0
9 7 5 4 2 1 0
8 7 5 4 2 1 0
9 8 7 5 4 2 1 0
6 5 4 2 1 0
9 6 5 4 2 1 0
8 6 5 4 2 1 0
9 8 6 5 4 2 1 0
7 6 5 4 2 1 0
9 7 6 5 4 2 1 0
8 7 6 5 4 2 1 0
9 8 7 6 5 4 2 1 0
3 2 1 0
9 3 2 1 0
8 3 2 1 0
9 8 3 2 1 0
7 3 2 1 0
9 7 3 2 1 0
8 7 3 2 1 0
9 8 7 3 2 1 0
6 3 2 1 0
9 6 3 2 1 0
8 6 3 2 1 0
9 8 6 3 2 1 0
7 6 3 2 1 0
9 7 6 3 2 1 0
8 7 6 3 2 1 0
9 8 7 6 3 2 1 0
5 3 2 1 0
9 5 3 2 1 0
8 5 3 2 1 0
9 8 5 3 2 1 0
7 5 3 2 1 0
9 7 5 3 2 1 0
8 7 5 3 2 1 0
9 8 7 5 3 2 1 0
6 5 3 2 1 0
9 6 5 3 2 1 0
8 6 5 3 2 1 0
9 8 6 5 3 2 1 0
7 6 5 3 2 1 0
9 7 6 5 3 2 1 0
8 7 6 5 3 2 1 0
9 8 7 6 5 3 2 1 0
4 3 2 1 0
9 4 3 2 1 0
8 4 3 2 1 0
9 8 4 3 2 1 0
7 4 3 2 1 0
9 7 4 3 2 1 0
8 7 4 3 2 1 0
9 8 7 4 3 2 1 0
6 4 3 2 1 0
9 6 4 3 2 1 0
8 6 4 3 2 1 0
9 8 6 4 3 2 1 0
7 6 4 3 2 1 0
9 7 6 4 3 2 1 0
8 7 6 4 3 2 1 0
9 8 7 6 4 3 2 1 0
5 4 3 2 1 0
9 5 4 3 2 1 0
8 5 4 3 2 1 0
9 8 5 4 3 2 1 0
7 5 4 3 2 1 0
9 7 5 4 3 2 1 0
8 7 5 4 3 2 1 0
9 8 7 5 4 3 2 1 0
6 5 4 3 2 1 0
9 6 5 4 3 2 1 0
8 6 5 4 3 2 1 0
9 8 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
9 7 6 5 4 3 2 1 0
8 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0

//output
1
2
1
69
3
2
59
1
58
59
7
4
3
49
2
48
49
6
1
47
48
9
49
6
7
469
5
4
39
3
38
39
5
2
37
38
8
39
5
6
369
1
36
37
9
38
8
9
359
39
5
6
358
7
359
369
47
6
5
29
4
28
29
4
3
27
28
7
29
4
5
269
2
26
27
8
28
14
8
259
29
4
5
258
6
259
269
37
1
25
26
9
27
8
9
249
28
7
8
248
9
249
259
36
29
4
5
247
6
248
258
39
7
249
259
36
269
37
47
2469
7
6
19
5
18
19
3
4
17
18
6
19
3
4
169
3
16
17
7
18
13
7
159
19
3
4
158
5
159
169
27
2
15
16
8
17
18
8
149
18
13
14
148
8
149
159
26
19
3
4
147
5
148
158
29
6
149
159
26
169
27
37
1469
1
14
15
9
16
8
9
139
17
7
8
138
9
139
149
25
18
6
7
137
8
138
148
28
9
139
149
25
159
26
36
1369
19
3
4
136
5
137
147
29
6
138
148
28
158
29
39
1359
7
139
149
25
159
26
36
1358
169
27
37
1359
47
1369
1469
247
8
7
9
6
8
9
2
5
7
8
5
9
2
3
69
4
6
7
6
8
12
6
59
9
2
3
58
4
59
69
17
3
5
6
7
7
17
7
49
8
12
13
48
7
49
59
16
9
2
3
47
4
48
58
19
5
49
59
16
69
17
27
469
2
4
5
8
6
18
8
39
7
17
18
38
8
39
49
15
8
12
13
37
14
38
48
18
8
39
49
15
59
16
26
369
9
2
3
36
4
37
47
19
5
38
48
18
58
19
29
359
6
39
49
15
59
16
26
358
69
17
27
359
37
369
469
147
1
3
4
9
5
8
9
29
6
7
8
28
9
29
39
14
7
6
7
27
8
28
38
17
9
29
39
14
49
15
25
269
8
5
6
26
7
27
37
18
8
28
38
48
48
18
28
259
9
29
39
14
49
15
25
258
59
16
26
259
36
269
369
137
9
2
3
25
4
26
36
19
5
27
37
18
47
19
29
249
6
28
38
17
48
18
28
248
58
19
29
249
39
259
359
136
7
29
39
14
49
15
25
247
59
16
26
248
36
258
358
139
69
17
27
249
37
259
359
136
47
269
369
137
469
147
247
2469
9
8
71
7
61
62
1
6
51
52
0
53
1
2
509
5
41
42
5
43
11
5
409
44
1
2
408
3
409
419
7
4
31
32
6
33
16
6
309
34
11
12
308
6
309
319
0
35
1
2
307
3
308
318
0
4
309
319
6
329
7
17
3069
3
21
22
7
23
17
7
209
24
21
17
208
7
209
219
5
25
11
12
207
13
208
218
0
7
209
219
5
229
6
16
2069
26
1
2
206
3
207
217
9
4
208
218
8
228
9
19
2059
5
209
219
5
229
6
16
2058
239
7
17
2059
27
2069
2169
47
2
11
12
8
13
18
8
109
14
28
18
108
8
109
119
4
15
21
22
107
18
108
118
0
8
109
119
4
129
5
15
1069
16
11
12
106
13
107
117
8
14
108
118
38
128
8
18
1059
8
109
119
4
129
5
15
1058
139
6
16
1059
26
1069
1169
0
17
1
2
105
3
106
116
9
4
107
117
8
127
9
19
1049
5
108
118
7
128
8
18
1048
138
9
19
1049
29
1059
1159
0
6
109
119
4
129
5
15
1047
139
6
16
1048
26
1058
1158
0
149
7
17
1049
27
1059
1159
36
37
1069
1169
37
1269
47
147
10469
1
1
2
9
3
19
9
9
4
29
19
8
9
9
19
3
5
31
29
7
19
8
18
0
9
9
19
3
29
4
14
69
6
21
22
6
23
7
17
7
19
8
18
37
28
7
17
59
9
9
19
3
29
4
14
58
39
5
15
59
25
69
169
27
7
11
12
5
13
6
16
8
14
7
17
38
27
8
18
49
15
8
18
48
28
104
48
48
38
8
18
49
28
59
159
0
9
9
19
3
29
4
14
47
39
5
15
48
25
58
158
0
49
6
16
49
26
59
159
26
36
69
169
27
269
37
137
469
8
1
2
4
3
5
15
9
4
6
16
8
26
9
19
39
5
7
17
7
27
8
18
38
37
9
19
39
29
49
149
25
6
8
18
6
28
7
17
37
38
8
18
38
28
48
148
0
48
9
19
39
29
49
149
25
39
59
159
26
259
36
136
369
7
9
19
3
29
4
14
36
39
5
15
37
25
47
147
29
49
6
16
38
26
48
148
28
36
58
158
29
258
39
139
359
59
7
17
39
27
49
149
25
37
59
159
26
259
36
136
358
47
69
169
27
269
37
137
359
369
47
147
369
247
469
1469
247
View Code

 

posted @ 2016-08-16 00:46  tak_fate  阅读(1043)  评论(2编辑  收藏  举报