Cod sursa(job #2232503)

Utilizator czlateaZlatea Cezar czlatea Data 19 august 2018 19:14:56
Problema Pascal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;

int ft[5000005];
int ftr[5000005];
int v[5000005];
int legend_re (int k, int l)
{
    int s = 0, cp = l;
    while (k / l > 0)
    {
        s += k / l;
        l += cp;
    }
    return s;
}
int main()
{
    freopen ("pascal.in", "r", stdin);
    freopen ("pascal.out", "w", stdout);
    int r, d;
    int n = 0;
    scanf ("%d%d", &r, &d);
    int i;
    if (d != 6)
    {
        for (i = 0; i <= r; i ++)
        {
            if (i == 0)
            v[i] = legend_re (1, d);
            else
            v[i] = legend_re (i, d);
            //printf ("%d\n", v[i]);
        }
        for (i = 0; i <= r; i ++)
            if (v[r] - v[i] - v[r - i] > 0)
             n ++;
        printf ("%d", n);
    }
    else
    {
        for (i = 0; i <= r; i ++)
        {
            ft[i] = legend_re (i, 2);
            ftr[i] = legend_re (i, 3);
            //printf ("%d %d\n", ft[i], ftr[i]);
        }
        for (i = 0; i <= r; i ++)
        {
            if (ft[r] - ft[i] - ft[r - i] > 0 and ftr[r] - ftr[i] - ftr[r - i] > 0)
                n ++;
        }
        printf ("%d", n);
    }

    return 0;
}