Cod sursa(job #975239)

Utilizator tzipleatudTudor Tiplea tzipleatud Data 19 iulie 2013 14:56:00
Problema Indep Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#define NM 510
#define VM 1010

using namespace std;

ifstream f("indep.in");
ofstream g("indep.out");

inline int cmmdc (int a, int b)
{
    int r;
    while (b)
    {
        r=a%b;
        a=b;
        b=r;
    }

    return a;
}

int N, i, j;
int A[NM];
long long DP[NM][VM];

int main ()
{
    f >> N;
    for (i=1; i<=N; i++)
        f >> A[i];

    for (i=1; i<=N; i++)
    {
        DP[i][A[i]]++;
        for (j=1; j<=1000; j++)
        {
            DP[i][j]+=DP[i-1][j];
            DP[i][cmmdc(A[i], j)]+=DP[i-1][j];
        }
    }

    g << DP[N][1] << '\n';

    f.close();
    g.close();

    return 0;
}