Cod sursa(job #1654071)

Utilizator pickleVictor Andrei pickle Data 16 martie 2016 19:59:55
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <algorithm>
#include <bitset>
#include <cmath>
#include <fstream>
#include <iostream>
#include <queue>
#include <stack>
#include <string.h>
#include <string>
#include <vector>

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");

const int MOD = 1999999973;

ll go(ll a, int p) {
  if (p == 0)
    return 1;
  ll res = go((a*a) % MOD, p/2);
  if (p & 1)
    res = (res * a) % MOD;
  return res;
}

int main() {
  int N, P;
  fin >> N >> P;
  fout << go(N, P) << endl;

  return 0;
}