Cod sursa(job #2321129)

Utilizator triscacezarTrisca Vicol Cezar triscacezar Data 15 ianuarie 2019 18:46:50
Problema Indep Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>

const int bz=1e9;

using namespace std;

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

int n,i,j,a,len[1010],val[1010][30];

void ad(int i,int j)
{
    int ovr=0;
    for(int r=1;r<=max(len[i],len[j])+3;r++)
    {
        val[j][r]+=val[i][r]+ovr;
        ovr=val[j][r]/bz;
        val[j][r]%=bz;
    }
    for(int r=1;r<=20;r++)
        if(val[j][r])
            len[j]=r;
    if(!len[j])len[j]=1;
}

int main()
{
    f>>n;
    for(i=0;i<=1000;i++)
        len[i]=1;
    val[0][1]=1;
    for(i=1;i<=n;i++)
    {
        f>>a;
        for(j=1;j<=1000;j++)
        {
            int x=__gcd(j,a);
            ad(j,x);
        }
        ad(0,a);
    }
    for(i=len[1];i>=1;i--)
        g<<val[1][i];
    return 0;
}