From c5fcf7179a83ef65c86c6a4a390029149e518649 Mon Sep 17 00:00:00 2001 From: Franciszek Malinka Date: Tue, 5 Oct 2021 21:49:54 +0200 Subject: Duzy commit ze smieciami --- Semestr 4/aisd/themis/FIB.cpp | 58 ------------------------------------------- 1 file changed, 58 deletions(-) delete mode 100644 Semestr 4/aisd/themis/FIB.cpp (limited to 'Semestr 4/aisd/themis/FIB.cpp') diff --git a/Semestr 4/aisd/themis/FIB.cpp b/Semestr 4/aisd/themis/FIB.cpp deleted file mode 100644 index dd38c5c..0000000 --- a/Semestr 4/aisd/themis/FIB.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include -using namespace std; -typedef long long ll; - -class matrix -{ -public: - ll a, b, c, d; - static ll m; - - matrix(ll _a = 0, ll _b = 0, ll _c = 0, ll _d = 0) : a(_a), b(_b), c(_c), d(_d) {} - - matrix operator*(const matrix &M) const - { - matrix res; - res.a = (a * M.a + b * M.c) % m; - res.b = (a * M.b + b * M.d) % m; - res.c = (c * M.a + d * M.c) % m; - res.d = (c * M.b + d * M.d) % m; - return res; - } -}; - -ll matrix::m = 1; - -matrix fast_pow(matrix M, int w) -{ - matrix res(1, 0, 0, 1); - while (w) - { - if (w % 2 == 1) - res = res * M; - M = M * M; - w >>= 1; - } - return res; -} - -void solve() -{ - int n, m; - cin >> n >> m; - matrix M(0, 1, 1, 1); - matrix::m = m; - cout << fast_pow(M, n + 1).a << "\n"; -} - -int main() -{ - ios_base::sync_with_stdio(false); - cin.tie(); - int t; - cin >> t; - while (t--) - { - solve(); - } -} \ No newline at end of file -- cgit v1.2.3