Cod sursa(job #2847800)

Utilizator Andrei_ierdnANeculau Rares-Andrei Andrei_ierdnA Data 11 februarie 2022 15:08:35
Problema Mins Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

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

long long c, d, i, j, sol, x, cnt[1000100], mini, maxi, cap, s;

int main()
{
    f >> c >> d;
    mini = min(c-1, d-1);
    maxi = max(c-1, d-1);
    cap = min(mini, (d-1) / 2);
    for (i = 2; i <= cap; i++) {
        x = 1 - cnt[i];
        sol = sol + x * ((c - 1) / i) * ((d - 1) / i);
        if (x) {
            for (j = i; j <= mini; j += i)
                cnt[j] += x;
        }
    }
    if (mini <= (d-1) / 2)
        g << (c-1) * (d-1) - sol;
    else {
        for (i = cap + 1; i <= mini; i++)
            s += cnt[i];
        x = (mini - cap) - s;
        sol += x;
        g << (c-1) * (d-1) - sol;
    }
    f.close();
    g.close();
    return 0;
}