Cod sursa(job #3340142)

Utilizator rapidu36Victor Manz rapidu36 Data 12 februarie 2026 10:46:01
Problema Indep Scor 25
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

using namespace std;

const int VMIN = 1;
const int VMAX = 1000;
const int N = 500;

long long nrs[2][VMAX+1];

int cmmdc(int a, int b)
{
    while (b != 0)
    {
        int r = a % b;
        a = b;
        b = r;
    }
    return a;
}

int main()
{
    ifstream in("indep.in");
    ofstream out("indep.out");
    int n;
    in >> n;
    for (int i = 1; i <= n; i++)
    {
        int x_i;
        in >> x_i;
        int lin_c = i % 2;
        int lin_a = 1 - lin_c;
        for (int val = VMIN; val <= VMAX; val++)
        {
            nrs[lin_c][val] = nrs[lin_a][val];
        }
        for (int val = VMIN; val <= VMAX; val++)
        {
            int d = cmmdc(x_i, val);
            nrs[lin_c][d] += nrs[lin_a][val];
        }
        nrs[lin_c][x_i]++;
    }
    out << nrs[n%2][1] << "\n";
    in.close();
    out.close();
    return 0;
}