Cod sursa(job #2020321)

Utilizator pas.andreiPopovici Andrei-Sorin pas.andrei Data 9 septembrie 2017 21:21:43
Problema Zoo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <bits/stdc++.h>
#define NMAX 100005
#define INF 0x3f3f3f3f
#define ll long long

using namespace std;

ifstream fin("zoo.in");
ofstream fout("zoo.out");

int dp[NMAX];

int main() {
	int n,i,x,ans=1,d,best;

	fin>>n;
	for(i=1;i<=n;++i) {
		fin>>x;

		d=2;
		best=dp[x];
		while(d*d<=x) {
			if(x%d==0) {
				best=max(best,dp[d]);
				best=max(best,dp[x/d]);
			}

			++d;
		}

		d=2;
		dp[x]=best+1;
		while(d*d<=x) {
			if(x%d==0)
				dp[x/d]=dp[d]=best+1;

			++d;
		}

		ans=max(ans,best+1);
	}

	fout<<ans;

	return 0;
}