Cod sursa(job #2926402)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 17 octombrie 2022 19:05:10
Problema Indep Scor 25
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin  ("indep.in");
ofstream fout ("indep.out");

const int MAX_N = 505;
const int MAX_V = 1005;
int n, m, v[MAX_N];
long long dp[MAX_N][MAX_V];

int main (){
    ios_base::sync_with_stdio(false);
    fin.tie(nullptr), fout.tie(nullptr);

    fin>>n;
    for(int i=1; i<=n; i++){
        fin>>v[i];
        m = max(m, v[i]);
        dp[i][v[i]] = 1;
    }

    for(int i=1; i<=n; i++){

        for(int j=i+1; j<=n+1; j++)
            dp[j][v[i]] += 1;

        for(int cmmdc=1, nxt_cmmdc; cmmdc<=m; cmmdc++)
            if(dp[i][cmmdc] != 0){
                nxt_cmmdc = __gcd(cmmdc, v[i]);
                for(int j=i+1; j<=n+1; j++)
                    dp[j][nxt_cmmdc] += dp[i][cmmdc];
            }
    }
    fout<<dp[n+1][1] / 2;
    return 0;
}
/**
4
3 4 2 6

  3 1 1
    4 2
      2
      4
**/