Cod sursa(job #1289739)

Utilizator stefanzzzStefan Popa stefanzzz Data 10 decembrie 2014 11:21:31
Problema Indep Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#define MAXN 505
#define MAXVAL 1000
using namespace std;
ifstream f("indep.in");
ofstream g("indep.out");

int n, v[MAXN], pd[MAXN][MAXVAL + 5], sumpd[MAXVAL + 5], x;

int gcd(int x, int y){
    if(!y)
        return x;
    return gcd(y, x % y);
}

int main()
{
    int i, j;
    f >> n;
    for(i = 1; i <= n; i++)
        f >> v[i];

    for(i = 1; i <= n; i++){
        pd[i][v[i]]++;
        for(j = 1; j <= MAXVAL; j++){
            x = gcd(v[i], j);
            pd[i][x] += sumpd[j];
        }

        for(j = 1; j <= v[i]; j++){
            sumpd[j] += pd[i][j];
        }
    }

    g << sumpd[1] << '\n';
    f.close();
    g.close();
    return 0;
}