Cod sursa(job #3297043)

Utilizator Andrei_GAndreiG Andrei_G Data 20 mai 2025 16:14:40
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.16 kb
#include <fstream>
#include <algorithm>
#include <string>
#include <cmath>
#include <queue>
#include <deque>
#include <map>
#include <stack>
#include <vector>
#define int long long
using namespace std;

ifstream cin("lgput.in");
ofstream cout("lgput.out");

int n, p;

int ep(int n, int p){
    if (p == 1){
        return n;
    }
    if (p % 2 == 0){
        return (ep(n, p / 2) * ep(n, p / 2)) % 1999999973;
    }
    else{
        return (n * ep(n, p / 2) * ep(n, p / 2)) % 1999999973;
    }
}

signed main(){
    cin>>n>>p;
    cout<<ep(n, p);
}



















/*
int n, v[1005], r = 0;

signed main(){
    cin>>n;
    for (int i = 1; i <= n; i++){
        cin>>v[i];
    }
    sort(v + 1, v + n + 1);
    for (int i = 1; i <= n - 2; i++){
        for (int j = i + 1; j <= n - 1; j++){
            int x = v[j] - v[i];
            int a = lower_bound(v + j + 1, v + n + 1, v[j] + 2 * x - 1) - v;
            int b = lower_bound(v + j + 1, v + n + 1, v[j] + x) - v;
            r += a - b + 1;
            if (v[a] != v[j] + 2 * x - 1){
                r--;
            }
        }
    }
    cout<<r;
}
*/