Cod sursa(job #2321148)

Utilizator triscacezarTrisca Vicol Cezar triscacezar Data 15 ianuarie 2019 18:59:08
Problema Indep Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 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);

    }

    g<<val[1][len[1]];

    for(i=len[1]-1;i>=1;i--)

    {

        int k=0,a[20];

        for(j=1;j<=9;j++)

        {

            a[++k]=val[1][i]%10;

            val[1][i]/=10;

        }

        for(j=9;j>=1;j--)

            g<<a[j];

    }

    return 0;

}