알고리즘/softeer

Softeer - 수퍼바이러스

유이얼 2021. 8. 20. 15:06

https://softeer.ai/practice/info.do?eventIdx=1&psProblemId=391&sw_prbl_sbms_sn=14494

#include <iostream>
#include <set>
#include <vector>
#include <queue>
#include <string>

using namespace std;

int main() {
	const int MOD = 1000000007;
	long long N, P, T;
	cin >> N >> P >> T;
	T *= 10;
	P %= MOD;

	long long ans = N;
	while (T) {
		long long p = P;
		long long count = 1;
		while (T > 2 * count) {
			p *= p;
			p %= MOD;
			count *= 2;
		}

		T -= count;
		ans *= p;
		ans %= MOD;
	}

	cout << ans << "\n";
	return 0;
}