Cod sursa(job #2465764)

Utilizator petrisorvmyVamanu Petru Gabriel petrisorvmy Data 30 septembrie 2019 19:48:47
Problema Indep Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
#define ll int
#define NMAX 1010
#define base 100
using namespace std;

ifstream f("indep.in");
ofstream g("indep.out");
int pd[NMAX][109], ceva[109],n;
void aduna(ll a[109], ll b[109])
{
    int i,t = 0;
    for(i = 1; i <= a[0] || i <= b[0] || t > 0 ; ++i)
    {
        a[i] = a[i] + b[i] + t;
        t = a[i] / base;
        a[i] %= base;
    }
    a[0] = i - 1;
}
int main()
{
    f >> n;
    ceva[0] = ceva[1] = 1;
    for(int i = 1; i <= n; ++i)
    {
        int x;
        f >> x;
        for(int j = 1; j <= 1000; ++j)
            aduna(pd[__gcd(x,j)], pd[j]);
        aduna(pd[x] , ceva);
    }
    g << pd[1][pd[1][0]];
    for(int i = pd[1][0] - 1; i >= 1; --i)
        printf("%.3d",pd[1][i]);
    f.close();
    g.close();
    return 0;
}