#include #include #define MAX_N 100 int maxlength=0; int n = 18; int s[]={7,4,6,1,3,4,6,5,4,6,5,2,8,9,3,2,7,6}; //int s[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}; //int s[]={18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}; //int s[]={1,2,4,8,16,32,5,6,7,9,10,11,12,13,14,15,16,17}; //int s[]={8,16,32,5,6,7,9,10,11,12,13,14,15,16,1,2,4,17}; void print(int* v, int n){ int i=0; for(i=0; i contiene una sottosequenza crescente di s la cui lunghezza e' . // e' l'indice in s dell'ultimo elemento preso dalla sottosequenza . // e' un indice in s successivo a . // stampo tutte le sottosequenze crescenti di s aventi come prefisso e che come ulteriori // elementi peschino da s successivamente a . // prints an increasing substring if it is longer than all pervious // (the last one will be the longer) assert(i=n){ if(length>maxlength) { maxlength=length; print(subs, length); } return; } if(s[i]