Cod sursa(job #752255)

Utilizator anca1243Popescu Anca anca1243 Data 28 mai 2012 10:49:07
Problema Indep Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("indep.in");
ofstream out("indep.out");
int n,v[505],d[505][1005];
int cmmdc(int a,int b)
{
    int r;
    while(b != 0)
    {
        r = a%b;
        a = b;
        b = r;
    }
    return a;
}
void rez()
{
    d[0][0]=1;
    for(int i=1;i<=n;i++)
        for(int j=0;j<=1000;j++)
        {
            int sum=0;
            for(int k=0;k<=1000;k++)
            {
                if(d[i-1][k]==0) continue;
                if(cmmdc(k,v[i])==j)
                    sum+=d[i-1][k];
            }
            d[i][j]=d[i-1][j]+sum;
        }


}
int main()
{
    in>>n;
    int i,j;
    for(i=1;i<=n;i++)
        in>>v[i];
    rez();
    out<<d[n][1];
    return 0;
}