Cod sursa(job #3249121)

Utilizator DomnulMilandruMilandru Nicon-David DomnulMilandru Data 14 octombrie 2024 20:34:00
Problema Pairs Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb

#include <fstream>
#include <string.h>
#include <vector>
#include <unordered_map>
#include <algorithm>
#include <cmath>
#include <deque>
using namespace std;
ifstream cin("pairs.in");
ofstream cout("pairs.out");
int n, x;
unordered_map<int, int> M;
vector<int> dp;
int maxi;
int main()
{
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        cin >> x;
        M[x]++;
        maxi = max(maxi, x);
    }
    dp.resize(maxi + 1);
    for (int i = maxi; i >= 1; i--)
    {
        int s = 0;
        dp[i] = M[i];
        for (int j = i + i; j <= maxi; j = j + i)
        {
            dp[i] = dp[i] + M[j];
            s = s + dp[j];
        }
        dp[i] = (dp[i] * (dp[i] - 1)) / 2 - s;
    }
    cout << dp[1];
    return 0;
}