Cod sursa(job #2294480)

Utilizator EdgeLordXDOvidiuPita EdgeLordXD Data 2 decembrie 2018 14:38:22
Problema Indep Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
#define N 501
#define ll long long
#define f first
#define s second
using namespace std;
ifstream in("indep.in");
ofstream out("indep.out");
int v[N*N*N];
ll gcd(ll a,ll b){
    if(!a || !b)
        return a+b;
    if(a>b)
        return gcd(a%b,b);
    return gcd(a,b%a);
}
int main(){
    ll n,nr=0,x,l=0,g,i,sum=0,l2,nr2=0;
    in>>n>>x;
    v[++l]=x;
    --n;
    while(n--){
        in>>x;
        l2=l;
        nr+=nr2;
        nr2=nr;
        if(x==1) ++nr;
        else v[++l]=x;
        for(i=1; i<=l2; ++i){
            g=gcd(v[i],x);
            if(g==1)
                ++nr;
            else
                v[++l]=g;
        }
        sum+=nr;
    }
    out<<sum;
    return 0;
}