Cod sursa(job #701014)

Utilizator PetcuIoanPetcu Ioan Vlad PetcuIoan Data 1 martie 2012 13:09:29
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<stdio.h>
#include<assert.h>

const int kmod = 1999999973;
long long base, exp, sol;

void read(){
    assert(freopen("lgput.in","r",stdin)!=NULL);
    scanf("%lld%lld",&base ,&exp);
}

long long power(long long x, long long y){
    int i;
    long long sol = 1;
    for(i = 1; i <= y; i <<= 1){
        if(i & y)
            sol = sol * x % kmod;
        x = x * x % kmod;
    }
    return sol;
}

void solve(){
    sol = power(base, exp);
}

void write(){
    assert(freopen("lgput.out","w",stdout)!=NULL);
    printf("%lld",sol);
}

int main(){
    read();
    solve();
    write();
    return 0;
}