Cod sursa(job #1812100)

Utilizator LucianTLucian Trepteanu LucianT Data 21 noiembrie 2016 20:39:44
Problema Indep Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<bits/stdc++.h>
#define maxN 505
#define maxVal 1005
#define maxCif 2004
using namespace std;
int n,i,j,x;
int dp[maxVal][maxCif],unu[maxCif];
void add(int a[],int b[])
{
    int i,t=0;
    for(i=1;i<=a[0] || i<=b[0] || t;i++,t/=10)
        a[i]=(a[i]+b[i]+t)%10;
    a[0]=i-1;
}
int main()
{
    freopen("indep.in","r",stdin);
    freopen("indep.out","w",stdout);
    scanf("%d",&n);
    unu[0]=unu[1]=1;
    for(i=1;i<=n;i++)
    {
        scanf("%d",&x);
        for(j=1;j<=1000;j++)
            add(dp[__gcd(x,j)],dp[j]);
        add(dp[x],unu);
    }
    for(i=dp[1][0];i>=1;i--)
        printf("%d",dp[1][i]);
    return 0;
}