i am using this code to print the length of LIS of arr[].how can i print all LIS ??Code:#include<iostream> #define INF 1<<20 #define min(a,b) (a<b?a:b) #define MAX 100 using namespace std; int B[]={-INF,INF,INF,INF,INF,INF,INF,INF,INF,INF,INF,INF}; int bin(int key) { int v; int lo=0; int hi=11; int mid; while(lo<=hi) { mid=lo+(hi-lo)/2; if(B[mid]>key) { v=mid; hi=mid-1; } else lo=mid+1; } return v; } int main() { int i; int arr[]={9,2,5,4,3,7,11,8,10,13,1}; int max=-1; for(i=0;i<11;i++) { int pos=bin(arr[i]); B[pos]=arr[i]; if(max<pos)max=pos; } cout<<max<<endl; return 0; }




Reply With Quote