1924C - Fractal Origami - CodeForces Solution


geometry math matrices *2400

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL MOD = 999999893;

LL pow(LL a, LL b) {
	if (b == 0) return 1LL;
	LL half = pow(a, b / 2);
	half = half * half; half %= MOD;
	if (b % 2 == 0) return half;
	return (half * a) % MOD;
}

void solve() {
	LL N; cin >> N;
	if (N % 2 == 1) {
		N /= 2;
		LL ans = pow(2LL, N) - 1;
		LL m = pow(2LL, 2 * N) + pow(2LL, N + 1) - 1;
		if (m < 0) {
			LL temp = abs(m / MOD) + 1;
			m += MOD * temp;
		}
		m %= MOD;
		ans *= pow(m, MOD - 2); ans %= MOD;
		cout << ans << '\n';
	} else {
		N /= 2; --N;
		LL ans = pow(2LL, N + 1) - 1;
		LL m = 1 - pow(2LL, 2 * N + 1) + pow(2LL, N + 2) - 2;
		if (m < 0) {
			LL temp = abs(m / MOD) + 1;
			m += MOD * temp;
		}
		m %= MOD;
		ans *= pow(m, MOD - 2); ans %= MOD;
		cout << ans << '\n';
	}
}

int main() {
	ios::sync_with_stdio(0); cin.tie(0);
	int t; cin >> t;
	while (t--) solve();
}


Comments

Submit
0 Comments
More Questions

838D - Airplane Arrangements
148B - Escape
847G - University Classes
1110A - Parity
1215B - The Number of Products
604C - Alternative Thinking
1204C - Anna Svyatoslav and Maps
322A - Ciel and Dancing
1689B - Mystic Permutation
1711B - Party
1702D - Not a Cheap String
1714F - Build a Tree and That Is It
1703F - Yet Another Problem About Pairs Satisfying an Inequality
610A - Pasha and Stick
1200A - Hotelier
1091A - New Year and the Christmas Ornament
1352B - Same Parity Summands
1102A - Integer Sequence Dividing
630B - Moore's Law
1004A - Sonya and Hotels
1680B - Robots
1690A - Print a Pedestal (Codeforces logo)
1295A - Display The Number
1077A - Frog Jumping
1714G - Path Prefixes
1369C - RationalLee
289B - Polo the Penguin and Matrix
1716A - 2-3 Moves
1670B - Dorms War
1716B - Permutation Chain