Cod sursa(job #2469206)

Utilizator CyborgSquirrelJardan Andrei CyborgSquirrel Data 6 octombrie 2019 16:39:26
Problema Indep Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("indep.in");
ofstream fout("indep.out");

int gcd(int a, int b){
    if(a == 0){
        return b;
    }
    return gcd(b%a, a);
}

int n;
int di[1014][1014];

void namica(int p){
    int a;
    fin >> a;
    for(int d = 1; d <= 1000; d++){
        if(di[p-1][d] != 0){
            di[p][gcd(d, a)] += di[p-1][d];
            di[p][d] += di[p-1][d];
        }
    }
    di[p][a] += 1;
}

void showit(){
    for(int i = 1; i <= 6; i++){
        for(int j = 1; j <= n; j++){
            cout << di[j][i] << " ";
        }
        cout << "\n";
    }
}

int sol = 0;

int main(){
    fin >> n;
    for(int i = 1; i <= n; i++){
        namica(i);
    }
    fout << di[n][1];
}