Cod sursa(job #3350074)

Utilizator eric_dragosDragos Eric eric_dragos Data 5 aprilie 2026 11:36:52
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.45 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");

int exp_by_squaring(int n, int p){
    if(p == 0) return 1;
    else if(p < 0) return exp_by_squaring(1/n, -p);
    else if(p % 2 == 0) return exp_by_squaring(n*n, p/2);
    else return n*exp_by_squaring(n*n, (p-1)/2);
}

int main(){
    int n,p;
    fin >> n >> p;
    fout << exp_by_squaring(n, p);
    return 0;
}