Cod sursa(job #861706)

Utilizator RaduDoStochitoiu Radu RaduDo Data 21 ianuarie 2013 20:55:33
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#include<queue>
#include<deque>
#include<list>
#define pb push_back
#define rest 1999999973
using namespace std;
long long n,m,x=1LL;

void lgput(long long a,long long b)
{
    while(b>0)
        if(b%2==1)
        {
            x*=a;
            x%=rest;
            b--;
        }
        else
        {
            a*=a;
            a%=rest;
            b/=2;
        }
}


int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%d%d",&n,&m);
    lgput(n,m);
    printf("%d\n",x%rest);
    return 0;
}