Cod sursa(job #3250789)

Utilizator cristian46290Petre Cristian cristian46290 Data 23 octombrie 2024 17:13:12
Problema Pascal Scor 10
Compilator cpp-64 Status done
Runda cex_1 Marime 0.92 kb
#include <iostream>
#include <fstream>

using namespace std;

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

long long int r, d;

static inline int exp(long long int x,long long int y)
{
    int rez = 0;
    long long int cy = y;
    if (y == 1)return x;
    while(x >= cy){
        rez += x / cy;
        cy *= y;
    }
    return rez;
}

int main()
{
    f >> r >> d;
    int rez = 0;
    long long int nr;
    if (r % 2 == 1)nr = r / 2;
    else nr = r / 2 + 1;
    if (r == 1){
        if (d == 1)g << 1;
        else g << 0;
        return 0;
    }
    if (d == 1){g << r - 1;return 0;}
    for (long long int i = 0;i < nr;i++){
        int ceva = exp(r,d);
        int ceva2 = exp((r-i),d);
        int ceva3 = exp(i,d);
        if (ceva - ceva2 - ceva3 > 0)rez++;
    }
    if (r % 2 == 1)g << rez * 2;
    else{
        if (rez > 0)g << rez * 2 - 1;
        else g << 0;
    }
}