Cod sursa(job #1059912)

Utilizator mikeshadowIon Complot mikeshadow Data 17 decembrie 2013 10:54:25
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <string.h>

#define min(a,b) ((a<b)?a:b)
#define max(a,b) ((a<b)?b:a)
#define abs(a) ((a<0)?-a:a)

#define INF 1000001

using namespace std;


#ifndef TEST
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
#else
ifstream fin ("input.txt");
ofstream fout ("output.txt");
#endif

#define REP(i,a,b) \
    for (int i=a; i<=b; i++)

#define MAXN 100000

#define MOD 1999999973

typedef long long ll;

ll power(ll x, int n)
{
    if (n==1) return x;
    else if (n==0) return 1;
    ll k;
    k = power(x,n/2);
    k = k%MOD;
    k = k*k;
    k= k %MOD;
    if (n%2) k = k*x;
    k = k%MOD;
    return k;
}

int main()
{
    int n,p;
    fin>>n>>p;
    ll rez;
    rez = power(n,p);
    rez = rez%MOD;
    fout<<rez;

    return 0;
}