Cod sursa(job #1309872)

Utilizator lolmanDomuta Dariu lolman Data 6 ianuarie 2015 09:45:05
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <iostream>
#include <fstream>
#define mod 1999999973
using namespace std;

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

long long rplg (long long a, long long b)
     {
         if (a<0) return rplg (1/a, -b);
         if (b==0) return 1;
         if (b==1) return a;
         if (b % 2== 0) return rplg (a*a, b/2);
         if (b % 2!=0 ) return (a * rplg (a*a, (b-1)/2));
     }
long long n,p;
int main()
{
    f>>n>>p;
    long long sol=rplg(n,p) % mod;
    g<<sol;
    return 0;
}