All elements of the sequence are good integers.Find the length of the longest good sequence.
InputThe input consists of two lines. The first line contains a single integerN(1? ≤?N? ≤? 105)-the number of good integers. The second line contains a single-space separated list of good integersA1 ,?A2 ,?...,?ANIn strictly increasing order (1? ≤?AI? ≤? 105;AI? AI? +? 1 ).
OutputPrint a single integer-the length of the longest good sequence.
Sample test (s) input52 3 4 6 9
Output4
Input91 2 3 5 6 7 8 9 10
Output4
NoteIn the first example, the following sequences are examples of good sequences: [2; 4; 6; 9], [2; 4; 6], [3; 9], [6]. the length of the longest good sequence is 4.
An extremely bad question !!
The question was wrong for two days !!
Nima was originally input data a (I)
I thought it was a sub-sequence requirement !!
Why are there so many ac users !!
Well, it's my English scum ..
Okay, I have not reviewed the question ..
Well, even so, I didn't expect it at the beginning ..
Status ..
Code:
#include
#include
int dp[100100],mot[100100],a[100100];int xx;int maxx(int a,int b){ return a>b?a:b;}void getmot(int x){ xx=0; int i; for(i=2;i*i<=x;i++) { if(x%i==0) { while(x%i==0) x/=i; mot[++xx]=i; } } if(x>1) mot[++xx]=x;}int main(){ int n,i,j; int ans; int tmp; while(scanf("%d",&n)!=EOF) { ans=1; memset(dp,0,sizeof(dp)); memset(mot,0,sizeof(mot)); for(i=1;i<=n;i++) { scanf("%d",&a[i]); getmot(a[i]); tmp=1; if(a[i]==mot[1]) { dp[mot[1]]=1; } else { for(j=1;j<=xx;j++) { tmp=maxx(tmp,dp[mot[j]]+1); } } for(j=1;j<=xx;j++) { dp[mot[j]]=maxx(tmp,dp[mot[j]]); } ans=maxx(ans,tmp); } printf("%d\n",ans); } return 0;}