Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #define Nmax 1000000
- using namespace std;
- ifstream fin("sclmprime.in");
- ofstream fout("sclmprime.out");
- int n,A[1001],L[1001],v[Nmax],maxt,pm;
- void prime()
- {
- v[0]=v[1]=1;
- for(int i=2;i*i<Nmax;++i)
- if(v[i]==0)
- for(int j=2;i*j<Nmax;++j)
- v[i*j]=1;
- }
- void afis(int k,int m)
- {
- if(m>0)
- {
- int i=k-1;
- while(L[i]!=m-1)
- i--;
- afis(i,m-1);
- fout<<A[k]<<' ';
- }
- }
- int main()
- {
- int i,j,maxx;
- prime();
- fin>>n;
- for(i=1;i<=n;++i)
- fin>>A[i];
- L[1]=1;
- for(i=2;i<=n;++i)
- {
- maxx=0;
- for(j=1;j<i;++j)
- if(v[A[j]]==0&&v[A[i]]==0&&A[j]<=A[i]&&L[j]>maxx)
- maxx=L[j];
- if(v[A[i]]==0)
- L[i]=maxx+1;
- if(L[i]>=maxt)
- maxt=L[i],pm=i;
- }
- fout<<maxt<<'\n';
- afis(pm,maxt);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement