Cod sursa(job #2089880)

Utilizator stefdascalescuStefan Dascalescu stefdascalescu Data 17 decembrie 2017 12:26:31
Problema Indep Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<bits/stdc++.h>
#define maxN 505
#define maxVal 1010
#define maxCif 100
#define base 1000
using namespace std;
ifstream f("indep.in");
ofstream g("indep.out");
int n,i,j,x;
int dp[maxVal][maxCif],unu[maxCif];
void add(int a[maxCif],int b[maxCif])
{
    int i,t=0;
    for(i=1;i<=a[0] || i<=b[0] || t>0;i++)
        a[i]=a[i]+b[i]+t,
        t=a[i]/base,
        a[i]%=base;
    a[0]=i-1;
}
int main()
{
    f>>n;
    unu[0]=unu[1]=1;
    for(i=1;i<=n;i++)
    {
        f>>x;
        for(j=1;j<=1000;j++)
            add(dp[__gcd(x,j)],dp[j]);
        add(dp[x],unu);
    }
    g<<dp[1][dp[1][0]];
    for(i=dp[1][0]-1;i>=1;i--)
        g<<dp[1][i];
    return 0;
}