Cod sursa(job #825153)

Utilizator UnforgivenMihai Catalin Botezatu Unforgiven Data 27 noiembrie 2012 17:41:12
Problema Pascal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <iostream>
#include <cstdlib>
#include <cstdio>

#define MAX_SIZE 5000001
using namespace std;

short A[MAX_SIZE];

int main()
{
    FILE *input = fopen("pascal.in","r");
    FILE *output = fopen("pascal.out","w");
    int R;
    int D;
    fscanf(input,"%d%d",&R,&D);
    A[0] = 0;
    for (int i = 1 ; i<= R ;i++ )
    {
        int sum = 0;
        int x = i;
        while (x % D == 0)
        {
            x /= D;
            sum++;
        }
        A[i] = A[i-1] + sum;
    }
    int raspuns = 0;

    for (int i = 1; i < (R / 2); i++ )
    {
        if (A[R] - A[i] - A[R-i] > 0)
        {
            raspuns++;
            raspuns++;
        }
    }
    if ((R-1) % 2 == 0)
    {
        if (A[R] - A[R/2] - A[R-(R/2)] > 0)
        {
            raspuns++;
            raspuns++;
        }
    }
    else
    {
        if (A[R] - A[R/2] - A[R-(R/2)] > 0)
        {
            raspuns++;
        }
    }
    fprintf(output,"%d",raspuns);
    fclose(input);
    fclose(output);
    return 0;
}