Cod sursa(job #2978150)
Utilizator | Data | 13 februarie 2023 09:56:28 | |
---|---|---|---|
Problema | Indep | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.69 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream ci ("indep.in");
ofstream co ("indep.out");
const int N = 505;
int n, a[N], dp[N];
int gcd(int a, int b)
{
return b == 0 ? a : gcd(b, a % b);
}
int main()
{
ci >> n;
for (int i = 1; i <= n; i++)
{
ci >> a[i];
for (int j = i - 1; j >= 1; j--)
{
int t = gcd(a[i], a[j]);
if (t == 1)
{
dp[i] = max(dp[i], dp[j] + 1);
break;
}
}
dp[i]++;
}
int ans = 0;
for (int i = 1; i <= n; i++)
{
ans = max(ans, dp[i]);
}
co << ans << endl;
return 0;
}