Cod sursa(job #2148978)

Utilizator bogdanmarin69Bogdan Marin bogdanmarin69 Data 2 martie 2018 11:06:41
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

class Task {
public:
	void solve() {
		read_input();
		print_output(fast_pow(base, exponent, mod));
	}

private:
	int base, exponent, mod = 1999999973;

	void read_input() {
		ifstream fin("lgput.in");
		fin >> base >> exponent;
		fin.close();
	}

	int fast_pow(int base, int exponent, int mod) {
	    int ans = 1;
		while(exponent > 0) {
            if(exponent & 1) {
                ans = 1ll * ans * base % mod;
            }
            base = 1ll * base * base % mod;
            exponent >>= 1;
		}
		return ans;
	}

	void print_output(int result) {
		ofstream fout("lgput.out");
		fout << result;
		fout.close();
	}
};

int main() {
	Task task;
	task.solve();
	return 0;
}