Cod sursa(job #628008)

Utilizator zloteanu.adrianzloteanu adrian nichita zloteanu.adrian Data 31 octombrie 2011 12:23:35
Problema Indep Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <stdio.h>
using namespace std;
int din[1002][501];
int dbg1(int x,int y,int r)
{
    while(y)
    {
        r=x%y;
        x=y;
        y=r;
    }
    return x;
}
void dbg2(int din[], int B[],int t,int i)
{
    if (!din[0] && !B[0])
        return ;
    for (i=1; i<=din[0] || i<=B[0] || t; i++, t/=10)
        din[i] = (t += din[i] + B[i]) % 10;
    din[0] = i - 1;
}
int main()
{
    freopen("indep.in","r",stdin);
    freopen("indep.out","w",stdout);
    int v[501],i,j,t,n,A[2];
    scanf("%d",&n);
    for (i=1; i<=n; i++)
        scanf("%d",&v[i]);
    A[0]=A[1]=1;
    for (i=1; i<=n; i++)
    {
        for (j=1; j<=1000; j++)
        {
            t=dbg1(v[i],j,0);
            dbg2(din[t],din[j],0,0);
        }
        dbg2(din[v[i]],A,0,0);
    }
    if (din[1][0]==0)
    {
        printf("0");
        return 0;
    }
    for (i=din[1][0];i>=1;i--)
        printf("%d",din[1][i]);
    return 0;
}