Cod sursa(job #1636278)

Utilizator CalarisPredut Denis Stefanita Calaris Data 7 martie 2016 01:16:30
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>

using namespace std;

const long long MOD = 1999999973;
long long solve(long long,long long);

int main()
{
    long long sol,power;

    fstream f("lgput.in",ios::in);
    ofstream g("lgput.out");
    f>>sol>>power;
    g<<solve(sol,power);

    return 0;
}

long long solve(long long number, long long power)
{
    if(power==0)return 1;
    if(power==1)return number%MOD;
    if(power%2==0)return solve(((number%MOD)*(number%MOD))%MOD,power/2);
    else return (number*solve(((number%MOD)*(number%MOD))%MOD,power/2))%MOD;

}