Cod sursa(job #3199278)

Utilizator Sasha_12454Sasha Costea Sasha_12454 Data 1 februarie 2024 10:59:16
Problema Indep Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in ("indep.in");
ofstream out ("indep.out");
#define Dumnezeu
const int LIM=1001,LGMAX=1005;
int n,x;
int dp[LIM][LGMAX],aux[LGMAX]= {1,1};
void adunare(int a[],int b[])
{
    int r=0;
    if(a[0]<b[0])
        a[0]=b[0];
    for(int i=1; i<=a[0]; i++)
    {
        a[i]+=b[i]+r;
        r=a[i]/10;
        a[i]%=10;
    }
    if(r)
    {
        a[0]++;
        a[a[0]]=r;
    }
}
int main()
{
    in>>n;
    for(int i=1; i<=n; i++)
    {
        in>>x;
        for(int j=1; j<LIM; j++)
        {
            adunare(dp[__gcd(x,j)],dp[j]);
        }
        adunare(dp[x],aux);
    }
    for(int i=dp[1][0];i>0;i--)
    {
        out<<dp[1][i];
    }
    if(!dp[1][0])
        out<<0;
    return 0;
}