Cod sursa(job #2077641)

Utilizator OldpugAlex Ionescu Oldpug Data 28 noiembrie 2017 12:59:35
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.37 kb
#include <bits/stdc++.h>
#include <cstdint>

constexpr const int32_t m = 1999999973;
 
int main() {
  int64_t n, sol = 1;
  uint32_t p;
  
  std::ifstream("lgput.in") >> n >> p;

  for (uint32_t i = 0; (1 << i) <= p; ++i) {
    if (((1 << i) & p) > 0) {
      sol *= n;
      sol %= m;
     
      n *= n;
      n %= m;
    }
  }
  
  std::ofstream("lgput.out") << sol << '\n';
}